소수점을 표현하는 방식으로 float와 double을 많이 쓰게 되는데, float는 7자리 수, double은 16자리 수까지 표현한다.
따라서, 1/3을 할 경우 float는 0.3333334로 출력되지만, double은 0.3333333333333.. 으로 출력된다.
이번 문제를 보면,
라는 조건이 있다. 실제로 float를 10자리까지 늘려보면 0.3333334333로 출력되므로, 10^-7에서 오차가 발생한다. 즉, 문제의 취지에 옳지 않다. 따라서 double 자료형을 사용한다.
또한 문제의 조건에서 10자리까지 출력하라 했으므로 나눈 값을 String.format을 이용하여 변경현다.
import java.util.*
fun main(args: Array<String>) {
question1008()
}
fun question1008() {
val sc: Scanner = Scanner(System.`in`)
var a = sc.nextDouble()
var b = sc.nextDouble()
println(String.format("%.10f", (a/b)))
}