2017-04-26 2 views
0

(스칼라에서) 을 소수점 이하의 특정 숫자로 변환하는 함수를 만들려고했습니다.스칼라에서 매개 변수로 소수 자릿수를 전달하여 숫자 서식 지정

def roundBy2(num: Double): String = f"$num%1.2f" 

을하지만이 매개 변수를 통해 소수 자릿수를 통과하기를 원한다면 내 첫 번째 시도는 다음과 같을 수 있습니다 : 나는 문자열 2 소수점 이하 자릿수를 돌려 그것을 원한다면 내가 이런 짓을 했을까

def roundBy(num: Double)(dp: Int): String = f"$num%1.${dp}f" 

는하지만이 던졌습니다 :

'% 1'에서 변환 연산자를 누락;

나는 것을 알고있다 "F $ 인분 % 1 $ {DP}."문자열 = F : (DP : INT) : 리터럴 %, % n을 줄 바꿈 데프 roundBy (더블 NUM)에 대한 %% 사용 인터폴 레이터를 사용할 때 따옴표 안에 값을 참조 할 때 중괄호를 사용할 필요는 없지만 물론 그냥 f"$num%1.$dpf"으로 남겨두고 선언되지 않은 값, 즉 $dpf

을 사용하는 것으로 착각 할 것입니다.

이 방법으로 달성 할 수 있다고 확신하지만 구문이 부족하므로 쉽게 수정할 수 있기를 바랍니다. 당신은 단지 대신 .format(num)를 사용할 수 있습니다 감사합니다

답변

1

:

def roundBy(num: Double)(dp: Int): String = s"%1.${dp}f".format(num) 
+0

감사합니다 - 페데리코 그것을 할 것입니다. 너도 알다시피 간단 해! –