Scala String interpolation with Format, how to change locale?
scala, string, string-interpolation
Solution
Using the same Java library number formatting support accessible from `StringOps` enriched String class, you could specify another locale just for that output:
"%.2f".formatLocal(java.util.Locale.US, a)
(as described in "How to convert an Int to a String of a given length with leading zeros to align?")
The Scala way would be to use the string f interpolator (Scala 2.10+), as in the OP's question, but it is using the "current locale", without offering an easy way to set that locale to a different one just for one call.
Problem
When doing format string interpolation in Sweden I get a comma instead of a dot when creating strings with decimal numbers: ``` 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 ``` My question is, how do I set the format so that I get the result `5.01`? I would like to be able to set the locale only for that String, i.e. so that I don't change the locale for the whole environment. Cheers, Johan