Double
sからsへの変換の状況はBigDecimal
Javaと比較して少し改善されていますが
scala> new java.math.BigDecimal(0.2)
res0: java.math.BigDecimal = 0.20000000000000001110223024625156...
scala> BigDecimal(0.2)
res1: scala.math.BigDecimal = 0.2
とのようなもの
val numbers: List[BigDecimal] = List(1.2, 3.2, 0.7, 0.8, 1.1)
本当にうまく機能します、次のような暗黙の変換を行うことは合理的ではないでしょうか
implicit def String2BigDecimal(s: String) = BigDecimal(s)
このように文字列をBigDecimalsに変換できるデフォルトで利用可能ですか?
val numbers: List[BigDecimal] = List("1.2", "3.2", "0.7", "0.8", "1.1")
または、何かが足りないので、ScalaはJavaのすべての「問題」を、の代わりに浮動小数点値を持つコンストラクターを使用して解決しましたBigDecimal
。基本的に、Scalaではもう必要ありません。String
BigDecimal(String)