「浮点型和整数相除java」浮点数整除整数
今天给各位分享浮点型和整数相除java的知识,其中也会对浮点数整除整数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java中整除和浮点除什么区别
被除数和除数都为整数即为整除,结果也为整数,如果有余数,则忽略余数,比如
5/2结果为2。
被除数和除数只要有一个是浮点数(小数)即为浮点除,结果为浮点数,比如
5.0/2
结果为
2.5
在java数据类型中,浮点型数据除整数型数据,得到的结果是什么类型的数据?
不是错误就是小数呗
错误的话就不用说
不错就是浮点
java中两个float数相除,应该是整数却成了小数
主要是因为java中的【简单类型】并不适用于对【浮点】的【 精确计算】。,其它语言也存在同样的问题。
计算机存储数值,是二进制的。 在处理的时候,也是先把【浮点数】(float , double)转成整数再转成二进制,然后进行操作,如果有取余,会有不同的取余方式。再加上运算完成后,再多二进制转成上层的浮点,又会有一些取舍。就造成了呈现出来时的简单明显的错误 。
你可以试试下面的代码:
System.out.println(0.05 + 0.01);// 0.060000000000000005
System.out.println(1.0 - 0.42); // 0.5800000000000001
System.out.println(4.015 * 100);// 401.49999999999994
System.out.println(123.3 / 100); // 1.2329999999999999
在需要精确计算时, Math.round () 或则 DecimalFormat("0.00").format(4.025)) 都是不可取的。
要使用BigDecimal 或则 BCD码。
使用 BigDecimal 的时候,要使用 new BigDecimal (String ss) 这个构造函数。
public BigDecimal(double val) 这个构造函数也是不推荐的。 你可以参考这个函数的的注释。
BigDecimal b2 = new BigDecimal("0.3");
BigDecimal b1 = new BigDecimal("1.8");
System.out.println(b1.divide(b2));
关于浮点型和整数相除java和浮点数整除整数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。