java中,数值型Double运算出错问题
来源:互联网 发布:成都电视台网络直播 编辑:程序博客网 时间:2024/06/06 07:45
在java中(在python,js其他语言中也存在),某些double型数值运算会出错,例如0.1+0.2或者0.1*3会得到结果0.30000000000000004,网上有人提出解决办法如下:
Floati=3*0.1;
System.out.println(i);
但是对于0.9*1这种运算又会出现问题,用上述办法解决不了,所以,最好采用保留精度的方法,即设定保留小数点位数,下面保留小数点位数的工具类:
public static double round(double value, int scale) {if (scale < 0) {throw new IllegalArgumentException("The scale must be a positive integer or zero");}BigDecimal b = new BigDecimal(Double.toString(value));BigDecimal one = new BigDecimal("1");return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();}
0 0
- java中,数值型Double运算出错问题
- java中double运算的问题
- java double类型运算问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- Java中运算精度的问题(double与BigDecimal)
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于 java 中 Double 类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- java中Double类型的运算精度丢失的问题
- 关于java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- java中Double类型的运算精度问题
- 关于java中Double类型的运算精度问题
- JVM-ClassLoader
- mysql实现行转列的两个方式
- Remove Duplicates from Sorted Array
- 黑马程序员-集合的概述-List
- import-module的注意事项与NDK_MODULE_PATH的配置
- java中,数值型Double运算出错问题
- JAVA入门基础文章3-类的概念-什么是继承
- 文本文件解析
- Java比较String ==和equals() 解析
- 这样的人注定生活在社会最底层
- JavaWeb 全站乱码过滤
- 个人主页常见的头像与背景图不同步移动的下拉效果实现
- CF 550C 数学 or dp
- window.open 打开子窗口,关闭所有的子窗口