object FrexpExample {
def frexp(value: Double): (Double, Int) = {
if (value == 0.0) return (0.0, 0)
val exponent = math.floor(math.log(value.abs) / math.log(2)).toInt + 1
val fraction = value / math.pow(2, exponent)
(fraction, exponent)
}
def main(args: Array[String]): Unit = {
val d = 3.14
val (fraction, exponent) = frexp(d)
println(f"fraction = $fraction%.3f exponent = $exponent")
}
}
/*
run:
fraction = 0.785 exponent = 2
*/