我想对 Java 进行四舍五入BigDecimal
到一定数量的有效数字(不是小数位),例如至 4 位数字:
12.3456 => 12.35
123.456 => 123.5
123456 => 123500
等等。基本问题是如何找到的数量级BigDecimal
,这样我就可以决定小数点后使用多少位。
我能想到的只是一些可怕的循环,除以 10 直到结果
顺便说一句,这个数字可能非常大(或非常小),所以我无法将其转换为双精度以使用 Log 。
为什么不直接使用round(MathContext)
?
BigDecimal value = BigDecimal.valueOf(123456);
BigDecimal wantedValue = value.round(new MathContext(4, RoundingMode.HALF_UP));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)