Java 小数类 及四舍五入的方法 精度很高的小数时用

注意如果结果是无限位小数,不指定位数进行四舍五入的话会报错

import java.util.Scanner;
import java.math.BigDecimal;

public class Main {
	public static void main(String args[]){
		Scanner in = new Scanner(System.in);
		BigDecimal a = in.nextBigDecimal();
		BigDecimal b = in.nextBigDecimal();

		System.out.println("Add " + a.add(b));
		System.out.println("Sub " + a.subtract(b));
		System.out.println("Mul " + a.multiply(b));
		System.out.println("divide " + a.divide(b));//此处如果结果是无限循环,就会报错
		System.out.println("四舍五入: " + a.divide(b,5,BigDecimal.ROUND_HALF_UP));
		//第二个参数是小数位数  a.divide(b,5,BigDecimal.ROUND_HALF_UP).doubleValue;

		double d1 = 3.1415926;
		BigDecimal t1 = new BigDecimal(d1); //依次可以进行doubleToBigDecimal的转换

		int d2 = 3214856;
		BigDecimal t2 = new BigDecimal(d2);

		BigDecimal t3 = new BigDecimal("843269136");

		System.out.println("dobule TO : " + t1);
		System.out.println("Int to : " + t2);
		System.out.println("String to : " + t3);
	}
}
时间: 2024-11-02 02:38:48

Java 小数类 及四舍五入的方法 精度很高的小数时用的相关文章

Java 小数类 及四舍五入的方法 精度非常高的小数时用

注意假设结果是无限位小数,不指定位数进行四舍五入的话会报错 import java.util.Scanner; import java.math.BigDecimal; public class Main { public static void main(String args[]){ Scanner in = new Scanner(System.in); BigDecimal a = in.nextBigDecimal(); BigDecimal b = in.nextBigDecimal

Java测试类获取spring bean方法

Java测试类获取spring bean方法 http://blog.163.com/lizhenming_2008/blog/static/76558333201362094243911/ 1.通过spring上下文 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationcontext.xml"); DataSource ds = (DataSource) ctx.getBean("d

java Thread 类 run 和 start 方法区别

public class ThreadModle { public static void main(String[] args) throws InterruptedException { Thread t = new Thread(new Runnable(){ @Override public void run() { System.out.println("Run threadID: " + Thread.currentThread().getId()); } }); Syst

AVA实例化类的四种方法

原文地址:JAVA实例化类的四种方法 作者:权镜士 JAVA中实例化类的四种方法 1)使用new操作符 2)调用Class对象的newInstance()方法 3)调用clone()方法,对现有实例的拷贝 4)通过ObjectInputStream的readObject()方法反序列化类 点击(此处)折叠或打开 import java.io.*; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTa

第31节:Java基础-类与对象

前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载和构造方法的重载 方法的重载 在一个类中可以有多个方法具有相同的名字,但是这些方法的参数个数不同,或参数类型不同,即为方法的重载. class Demo{ // one void dashu(String name){ System.out.println(name); } // two void

解决java.math.BigDecimal divide方法运算结果为无限小数问题

http://samueli.iteye.com/blog/224755 BigDecimal除法运算报错,错误如下:Non-terminating decimal expansion; no exact representable decimal result 原因是: BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) if divisor is zero, roundingMode==ROUND_UNNECE

java 静态导入、System类、Date类、Runtime类、Calendar类、Collections类中的shuffle方法、Math类

/* JDK1.5版本新特性(续):静态导入 注意:当类名重名时,需要指定具体的包名: 当方法名重名时,需要指定具体的类名. */ import java.util.*; import static java.util.Arrays.*;//导入Arrays工具类中的所有静态成员. import static java.lang.System.*;//导入了System类中所有的静态成员,注意System类中的成员都是静态的. class StaticImport { public static

java处理高并发高负载类网站的优化方法

一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF.尤其是Web2.0的应用,数据库的响应是首先要解决的. 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降.常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作.我推荐的是M-M-Slaves方式,2个主Mysql,多个Slaves,需要注意的是,虽然有2个Master,但是同时只有1个是Activ

Java面试08|Java重要的类和相关的方法

1.深入理解Class类及其中的方法 获取Class类的方法: 1.调用Object类的getClass()方法来得到Class对象,这也是最常见的产生Class对象的方法.2.使用Class类的中静态forName()方法获得与字符串对应的Class对象.例如: Class c2=Class.forName("MyObject") // MyObject必须是接口或者类的名字 3.获取Class类型对象的第三个方法非常简单.如果T是一个Java类型,那么T.class就代表了匹配的类