当前位置: 代码迷 >> J2SE >> java中是如何对double类型进行取余
  详细解决方案

java中是如何对double类型进行取余

热度:68   发布时间:2016-04-23 20:37:36.0
java中是怎么对double类型进行取余
输出结果怎么会是这个一个小数呢?
public static void main(String[] args) {
System.out.println(15.2 % 5);//计算结果:0.1999999999999993
}

------解决方案--------------------
BigDecimal  挺好用的。
------解决方案--------------------
float和double都有这问题
要精确的话最好用Bigdecimal
------解决方案--------------------
引用:
BigDecimal  挺好用的。

System.out.println(new BigDecimal(15.2%5).floatValue());      
挺好用
------解决方案--------------------
double 和 float两个类型在java中本身就是非精确存储的,再用两个近似值去做计算,得到的结果就只能是一个近似值了。
------解决方案--------------------
		//使用BigDecimal四舍五入保留2位小数
double val = 15.2 % 5;
BigDecimal bd = new BigDecimal(val);
val = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(val);//打印0.2

------解决方案--------------------
两个数有一个是double,结果就是double的。
四舍五入网上太多了,不再赘述。

看一下:


java.math 
类 BigDecimal

java.lang.Object
  继承者 java.lang.Number
      继承者 java.math.BigDecimal
  相关解决方案