스칼라에있는 방법으로 실험하고 있습니다. 숫자의 크기에 따라 숫자를 반올림하려고합니다. 값이 1보다 작은 경우 적어도 하나의 소수점을 반올림하는 것이 좋습니다. 정수가 아닌. 이 오류가 발생합니다Scala에서 숫자 매개 변수를 반올림합니다.
def roundSmart[A](num: A)(implicit numeric: Numeric[A]) = num match {
case num if num < 1 => numeric.toDouble(num)
case _ => numeric.toInt(num)
}
: 그것이 될 수 있으므로 물론
value < is not a member of type parameter A
이 매개 변수는 함수 서명 내 매개 변수 유형의 범위를 수용 할 필요가 여기에 내가 노력하고있어입니다 정수 또는 복식을 사용하므로 더 복잡합니다.
나는이 대답에서 처음 경우에 조건 문을 찍은 - Using comparison operators in Scala's pattern matching system을하고 기능 프로그래밍 방법을 사용하는 열망입니다. 어쩌면 Math.round()
과 같은 내장 스칼라 함수도 있으므로 소수점을 제거하지 않고 두 번째 조건을 반올림하는 데 도움이 될 수 있습니다. 감사!
는'math.round'는 반환 형식 것을 스칼라에서 –