Scala:打印带小数的双倍和数千个分隔符和2个小数位

时间:2015-06-27 08:10:13

标签: scala formatting

我正在尝试打印这样一个双:

val Double = 12591294124.125124
printf("%,2f", Double)

使用想要的输出:12.591.294.124,13

奇怪的是,当使用“%,2f”时,它不会舍入到2位小数,但打印6就像这样:12.591.294.124,125124 有没有办法使用,作为十进制分隔符并舍入到2位数? 谢谢!

2 个答案:

答案 0 :(得分:3)

您可以选择比利时语言环境来获得此代表:

import java.util.Locale._

val belgiumLocale = getAvailableLocales.filter(_.getDisplayCountry == "Belgium")
                                       .head

val Double = 12591294124.125124
"%,.2f".formatLocal(belgiumLocale, Double)
// 12.591.294.124,13

答案 1 :(得分:1)

println(f"$Double%,.2f") // -> 12,591,294,124.13
println(f"$Double%,.2f"
  .replace(',', '-')
  .replace('.', ',')
  .replace('-', '.')) // -> 12.591.294.124,13