gpt4 book ai didi

java - 从未缩放的 long 创建 BigDecimal

转载 作者:行者123 更新时间:2023-12-04 09:17:15 25 4
gpt4 key购买 nike

我正在尝试将 long 1099 转换为 BigDecimal 10.99;
这给了我 11.00:

long cost = 1099;
MathContext CENTS = new MathContext(2,RoundingMode.HALF_EVEN);
BigDecimal result = (new BigDecimal(cost,CENTS)).movePointLeft(2);
AFAIK 这应该有效。我的笨蛋错误是什么?

最佳答案

错误在于规模和精度之间存在区别。 MathContext的构造函数接受精度,即小数点两侧的十进制数字总数。 (例如,您拥有的原始 BigDecimal 本质上是 11 * 10^2 ,就好像它是科学记数法一样。)
将其更改为 new MathContext(4, RoundingMode.HALF_EVEN) .

关于java - 从未缩放的 long 创建 BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63163036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com