我有一些java,它将价格乘以100,以使价格成为整数。但是在下面的示例中,28197.22 * 100返回2819700而不是2819722代码oExtendedLineCost =
String.valueOf((long)(Double.valueOf(iInvoiceAmount.trim()).doubleValue()*100.0+0.5));
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
我认为你的括号顺序不对。而且,看起来您正在尝试在截断为整数之前进行一些舍入。
有时,拆行以查看括号所在的位置会有所帮助:
oExtendedLineCost =
String.valueOf(
(long)(
(
Double.valueOf(
iInvoiceAmount.trim()
)*100.0+0.5
)
)
);
看起来您正在尝试进行一些“银行家四舍五入”,其中 1 美元 > 0.5 的小数部分向上舍入,但我不确定转换为多头是否会像您期望的那样四舍五入。
添加回答
举报
0/150
提交
取消