我有一些java,它將價(jià)格乘以100,以使價(jià)格成為整數(shù)。但是在下面的示例中,28197.22 * 100返回2819700而不是2819722代碼oExtendedLineCost =
String.valueOf((long)(Double.valueOf(iInvoiceAmount.trim()).doubleValue()*100.0+0.5));
1 回答

至尊寶的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
我認(rèn)為你的括號(hào)順序不對(duì)。而且,看起來(lái)您正在嘗試在截?cái)酁檎麛?shù)之前進(jìn)行一些舍入。
有時(shí),拆行以查看括號(hào)所在的位置會(huì)有所幫助:
oExtendedLineCost =
String.valueOf(
? ? ? ? ? ? ? ?(long)(
? ? ? ? ? ? ? ? ? ? ? (
? ? ? ? ? ? ? ? ? ? ? ?Double.valueOf(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iInvoiceAmount.trim()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?)*100.0+0.5
? ? ? ? ? ? ? ? ? ? ? )
? ? ? ? ? ? ? ? ? ? ?)
? ? ? ? ? ? ? );
看起來(lái)您正在嘗試進(jìn)行一些“銀行家四舍五入”,其中 1 美元 > 0.5 的小數(shù)部分向上舍入,但我不確定轉(zhuǎn)換為多頭是否會(huì)像您期望的那樣四舍五入。
添加回答
舉報(bào)
0/150
提交
取消