繁体   English   中英

使用Format Scala字符串插值,如何更改语言环境?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM