我想在 scala 中将双精度(如1.1231053E7
(转换为11,231,053.0
。目前,我转换双精度值的方式是f"$number"
这样做,其中number
是双精度值。不幸的是,这只是给了我一个带有1.1231053E7
的字符串.
我可以使用NumberFormat
或DecimalFormat
将其从科学记数法中转换出来,但这也迫使我选择预定的精度。我想要灵活的精度。所以。。。
val number1 = 1.2313215
val number2 = 100
val number4 = 3.333E2
。转换时应该是...
1.2313215
100
333.3
目前DecimalFormat
让我在施工过程中选择精度,如下所示:new DecimalFormat(##.##)
..
后的每个#
表示一个小数点。
如果我使用f"$number"
,它会正确处理小数点,但就像我之前说的,它无法处理科学记数法。
只需确定.
后需要多少个位置,写出隐藏零的数字:
val fmt = new java.text.DecimalFormat("#,##0.##############")
for (x <- List[Double](1.2313215, 100, 3.333E2)) println(fmt.format(x))
指纹:
1.2313215
100
333.3