[英]Decimal Precision Issue | Big Decimal
1. 1。
BigDecimal ap = new BigDecimal(170.8999999999998, MathContext.DECIMAL64).setScale(2, BigDecimal.ROUND_FLOOR);
result : 170.89 (Required : 170.89) 结果:170.89(必须:170.89)
2. 2。
BigDecimal ap = new BigDecimal(170.89999999999998, MathContext.DECIMAL64).setScale(2, BigDecimal.ROUND_FLOOR); (1 Extra 9 in value)
result : 170.90 (Required : 170.89) 结果:170.90(必需:170.89)
3. 3。
BigDecimal ap = new BigDecimal(2401.99).setScale(2, BigDecimal.ROUND_FLOOR);
result : 2401.98 (Required : 2401.99) 结果:2401.98(必填:2401.99)
How to get just 2 digit after decimal from value without rounding. 如何从值取小数点后仅2位而不取整。
PS : I do not want to convert the value to String. PS:我不想将值转换为String。
2401.99
is a double
literal , with an actual value just below that. 2401.99
是一个double
2401.99
字面量 ,实际值刚好在该值以下。
Use the BigDecimal
constructor from a String
instead. 请改用String
的BigDecimal
构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.