[英]Scala String interpolation with Format, how to change locale?
在瑞典进行格式字符串插值时,在创建带十进制数的字符串时,我得到逗号而不是点:
scala> val a = 5.010
a: Double = 5.01
scala> val a = 5.0101
a: Double = 5.0101
scala> f"$a%.2f"
res0: String = 5,01
我的问题是,如何设置格式以便得到结果5.01
? 我希望能够仅为该String设置语言环境,即这样我就不会更改整个环境的语言环境。
干杯,
约翰
使用可从StringOps
丰富的String类访问的相同Java库编号格式支持 ,您可以为该输出指定另一个区域设置:
"%.2f".formatLocal(java.util.Locale.US, a)
(如“ 如何将Int转换为给定长度的字符串,前导零对齐? ”中所述)
Scala的方式是使用字符串f插值器 (Scala 2.10 +),就像OP的问题一样,但它使用的是“当前语言环境”,而没有提供一种简单的方法来将该语言环境设置为另一个语言环境。
Locale.setDefault(Locale.US)
println(f"$a%.2f")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.