2014-07-16 6 views
8

스웨덴의 포맷 스트링 보간을하고 난 점 대신 쉼표를 얻을 :Format을 사용한 스칼라 문자열 보간, 로케일 변경 방법? 진수로 문자열을 만들 때

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를 얻을 수 있도록 나는 형식을 설정 어떻게? 해당 문자열에 대해서만 로캘을 설정할 수 있기를 바랍니다. 즉, 전체 환경에 대한 로캘이 변경되지 않도록 할 수 있습니다.

건배,

요한 StringOps enriched String class에서 같은 Java library number formatting support 접근 , 당신은 그냥 출력을 위해 다른 지역을 지정할 수 있습니다 사용

답변

10

:

"%.2f".formatLocal(java.util.Locale.US, a) 

("How to convert an Int to a String of a given length with leading zeros to align?"에 설명 된대로)

스칼라 방법은를 사용하는 것입니다.(스칼라 2.10+), OP의 질문과 마찬가지로,하지만 "현재 로케일"을 사용하고 있습니다. 한 통화에 대해서만 다른 로케일을 설정할 수있는 쉬운 방법은 없습니다.

+0

'$ a'가 아닌'a'이어야합니다. – Exupery

+0

@Exupery right, fixed. – VonC

+0

고마워요, 다른 방법이 있나요? 여전히 스칼라 방식을 사용하고 Java 방식을 사용하지 않습니까? 건배, 그렇지 않으면 너를 받아 들일거야. –