double 转 BigDecimal 数值不准确的问题
double类型数据转成BigDecimal类型数据,直接使用new BigDecimal(),转换后的数值不准确。可以使用 BigDecimal.valueOf() 方法。
public static void main(String[] args) { double a = -0.0025; BigDecimal b1 = new BigDecimal(a); BigDecimal b2 = BigDecimal.valueOf(a); BigDecimal b3 = new BigDecimal("-0.0025"); System.out.println(b1);// -0.0025000000000000000520417042793042128323577344417572021484375 System.out.println(b2);// 结果为 -0.0025 System.out.println(b3);// 结果为 -0.0025 System.out.println(b1.compareTo(b2));// 结果为 -1 System.out.println(b1.compareTo(b3));// 结果为 -1 System.out.println(b2.compareTo(b3));// 结果为 0 }
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦