我計算總和,並把它們放入我在Coldfusion中使用POI庫生成的Excel工作表中。由於Java庫期望輸入變量,我總是調用setCellValue(JavaCast("float", myVar))
。我被告知.03
四捨五入的錯誤。比鑄造浮動後通常已知的差異更大。JavaCast float慷慨
<cfset s = 601761.66>
<cfoutput>
#s#<br>
#JavaCast("float", s)#<br>
#LSNumberFormat(JavaCast("float", s), ".0000000")#<br><br>
</cfoutput>
- 第一行打印
601761.66
- 第二回合
601761.7
- 然而,該第三打印:
601761,6875000
其等於601761,69
和由.03
比我把該值越大
我知道,LSNumberFormat
返回一個字符串。我只是爲了比較才叫它。 POI似乎存儲浮點值,Excel最終顯示值爲LSNumberFormat。
如何將值傳遞給setCellValue
與我的值非常接近以至於十進制後的第二位數字被正確舍入?
爲什麼要使用'LSNumberFormat'而不是'NumberForm at'? –
可能是因爲NumberFormat僅支持美式格式規則。 – Leigh
在這種情況下,我只使用LSNumberformat來查看兩位以上的小數位。在現實生活中,我使用這個函數來獲得逗號而不是點。 –