我想找到一個簡單的方法來舍入一個雙精度到兩位小數。我正在使用BigDecimal來完成這個技巧,但注意到java.math.BigDecimal類的函數doubleValue
不存在。在Kotlin中將Double舍入到小數點後兩位。 BigDecimal.doubleValue不存在?
以下功能:
fun Double.roundTo2DecimalPlaces() =
BigDecimal(this).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()
是給我這個編譯錯誤:
:compileKotlin
Using kotlin incremental compilation
w: The '-d' option with a directory destination is ignored because '-module' is specified
e: -{FilePathAndNameWereHere}-: (20, 14): Unresolved reference: doubleValue
:compileKotlin FAILED
科特林版本1.1.1
謝謝! ;) 你說對了!原來我也在使用BigDecimal。我更新了我的問題,以便正確使用BigDecimal。但留下原始問題的錯誤。您可以編輯您的答案,以便人們不會複製破損的代碼。 ''''setScale'''函數實際返回一個新的BigDecimal。 '''toDouble'''是關鍵!你是老闆。 –
你對編輯你的答案有什麼看法,以反映方法的正確使用。由於該方法不會輪,因爲d.setScale不會改變原始對象。 –
我確實試圖通過編輯,但被社區拒絕:https://stackoverflow.com/review/suggested-edits/17149135如果我能得到一個很好的理由,不要介意重新接受這個答案。或者更有利於我的意見,如果代碼的不正確部分與問題無關,則會發生變化。 –