Tcl 9.1/Tk9.1 Documentation > Tcl Commands, version 9.1b0 > frexp

Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

NAME

frexp — Split a floating-point number into fraction and exponent parts

SYNOPSIS

package require tcl 9.1
frexp value

DESCRIPTION

The frexp command takes a floating-point number, value, and returns a list of two values. The first element of the result is the fractional part of value (signed, of magnitude between 0.5 and 1.0), and the second element of the result is the integer exponent from value. When value is infinite, the fraction is also infinite (of the same sign).

EXAMPLE

The frexp command is paired with the ldexp function, like this:

set value 123.456
lassign [frexp $value] frac exp
set recovered [expr { ldexp($frac, $exp) }]
puts "$value -> $frac*2**$exp -> $recovered"
#       123.456 -> 0.9645*2**7 -> 123.456

SEE ALSO

expr, mathfunc, modf

KEYWORDS

floating point
Copyright © 2025 Donal Fellows