BigDecimal准确设置小数点后的精度
来源:互联网 发布:徐州华道数据面试流程 编辑:程序博客网 时间:2024/05/15 06:38
因为BigDecimal的原因吧,也可以说是double的问题吧
new BigDecimal(currentLat2); 时值不再是 2.455675而是2.455674999999999999999999
因此在保留5位小数,四舍五入时,就变成2.45567而不是2.45568
后一个正确是因为没形成这种数据。
这种情况,用字符串可以避免这种问题
String currentLat2 = "2.455675";
BigDecimal b = new BigDecimal(currentLat2);
new BigDecimal(currentLat2); 时值不再是 2.455675而是2.455674999999999999999999
因此在保留5位小数,四舍五入时,就变成2.45567而不是2.45568
后一个正确是因为没形成这种数据。
这种情况,用字符串可以避免这种问题
String currentLat2 = "2.455675";
BigDecimal b = new BigDecimal(currentLat2);
System.out.println(b.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue());
======================使用方法======================
BigDecimal ..setScale(5, BigDecimal.ROUND_HALF_UP) -->保留五位小数
0 0
- BigDecimal准确设置小数点后的精度
- Java的小数点后精度计算
- BigDecimal 小数点位数设置
- BigDecimal设置小数点位数
- java 设置小数点精度
- 使用BigDecimal完成小数点后的精确位数的四舍五入
- 给BigDecimal设置小数点位数
- C++中如何控制小数点后的精度
- BigInteger和BigDecimal--数字运算精度的设置
- BigDecimal带精度的运算
- BigDecimal带精度的运算
- bigDecimal的精度和四舍五入
- Bigdecimal 精度
- BigDecimal的介绍2(BigDecimal.setScale 处理java小数点 )
- BigDecimal的使用(取得小数点后几位)
- BigDecimal.setScale()方法用于商业计算的精度设置问题详解
- java设置小数点后位数
- java.math.BigDecimal的精度问题
- A brief introduction to C++ and Interfacing with Excel
- 八皇后问题
- bzoj3510: 首都
- 优化程序性能
- 假如我是一个婴孩,我有不出生的权利
- BigDecimal准确设置小数点后的精度
- 成为设计师的五项技能!第四招!
- Maven常见异常及解决方法(更新至4-12)
- iOS 动画Animation详解, UIView动画(UIView属性动画,UIViewTransition动画,UIView Block动画),CALayer动画(CABasicAnima...)
- 变量名的命名规则
- Android支付接入(一):支付宝
- 彻底解决Android SDK Manager更新慢的问题 迅雷下载
- 轮廓的特征矩Moment
- iOS-生成国际化包-配置App多语言支持