How to get the fraction and exponent of a real number in Scala

1 Answer

0 votes
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

*/

 



answered Jun 30, 2025 by avibootz
...