两个float相减时丢失精度的解决方法
来源:互联网 发布:个人域名可以转企业吗 编辑:程序博客网 时间:2024/06/04 19:19
通常我们习惯这么写:
float a = 2.123f;
float b = 1.101f;
System.out.println("a-b=" + (a-b));
运行结果:a-b=1.022
那么这么写呢?
a = 2.1235f;
b = 1.1012f;
System.out.println("a-b=" + (a-b));
运行结果:a-b=1.0223001
可我们的期望值是:a-b=1.0223
所以float的精度到了4位之后就得这么写:
BigDecimal c = new BigDecimal(Float.toString(a));
BigDecimal d = new BigDecimal(Float.toString(b));
System.out.println("a-b=" + (c.subtract(d)).floatValue());
运行结果:a-b=1.0223
============================================================================================
//两个BigDecimal相加
big1 = big1.add(big2);
System.out.println(big1);
//两个BigDecimal相减
big1 = big1.subtract(big2);
System.out.println(big1);
//两个BigDecimal相乘
big1 = big1.multiply(big2);
System.out.println(big1);
//两个BigDecimal相除
big1 = big1.divide(big2);
System.out.println(big1);
- 两个float相减时丢失精度的解决方法
- Float转换不丢失精度,准确转换的解决方法
- float丢失精度的问题
- 关于float,double的精度丢失(一)
- 关于double,float的精度丢失(二)
- 关于float,double的精度丢失
- 关于float,double的精度丢失
- 关于float的精度丢失总结
- c++ float精度丢失
- float、double精度丢失
- float出现精度丢失
- java中double和float精度丢失问题及解决方法
- Java中double和float精度丢失问题及解决方法
- java中double和float精度丢失问题及解决方法
- javascript小数精度丢失的完美解决方法
- 剖析float型的内存存储和精度丢失问题
- 剖析float型的内存存储和精度丢失问题
- 剖析float型的内存存储和精度丢失问题
- 在CentOS中部署Zenoss
- SPOJ10628--COT(树上第K大)主席树
- hadoop2.2.0 自带jar 包和 MR程序所使用的第三方包冲突 解决
- poj 4586 Play the Dice(数论)
- 如何改变对话框的背景颜色
- 两个float相减时丢失精度的解决方法
- Eclispe自动部署到Tomact下的webapps目录下
- Android 在所有应用的上层弹出可拖动的View
- Android模拟神器_Genymotion
- 阿里面试总结
- C++指向类成员函数的指针
- 华硕 ZenFone 国产新机盘点
- 格子取数问题的动态规划和递归解法之比较
- MAC中设置android adb环境变量