我有一些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
提交
取消