1
scala.math.BigDecimal.toString
可以返回類似「0.888200000」的內容。如果我想要「0.8882」,我能做的最好的是什麼? java.math.BigDecimal
有stripTrailingZeros()
方法,但斯卡拉的BigDecimal似乎缺乏它。是否使用scala.math.BigDecimal.underlying
來獲取底層java.math.BigDecimal
最佳路線或是否有更好的Scala方法?在Scala中刪除BigDecimal的尾隨零的正確方法是什麼?
我問的不是關於「不想打字」,而是關於性能和類型/參考安全性:我對這種方法可能導致的任何顯而易見的問題很好奇。雖然沒有人提出任何更好的建議,每個人都贊成這個答案,但我會承認,答案是「是的,使用'.underlying'是好的,沒有更好的方法來放棄尾部零」,並可能遵循建議來使用隱式的。 – Ivan 2012-02-06 20:23:41
實際上,你(希望)不會在你的代碼中的多個地方剝離零,所以我只是使用'b.underlying.stripTrailingZeros'而不是去創建這個隱式方法的麻煩。使用'底層'沒有性能問題,因爲如果你看看源代碼,它只會返回對象上的一個字段。 – 2012-02-06 21:08:54
在練習中,我剛剛在'rs.getBigDecimal(1)'後面添加了'.stripTrailingZeros',以便在入口處去除零:-) – Ivan 2012-02-06 21:50:46