modf — Split a floating-point number into integer and fraction parts
package require tcl 9.1
modf value
The modf command takes a floating-point number, value, and
returns a list of two values. The first element of the result is the
whole integer part (as a floating-point number) of value, and the
second element of the result is the fractional part of value.
The signs of the two elements will match the sign of value.
It should be noted that the fractional part may have some digits that
appear to be undetermined by the input. This is due to the nature of
approximation inherent in floating-point arithmetic; the digits will
apparently disappear if the two parts are added back together.
set value 123.456
lassign [modf $value] whole part
set sum [expr {$whole + $part}]
puts "$value -> $whole $part -> $sum"
# 123.456 -> 123.0 0.45600000000000307 -> 123.456
expr, frexp, mathfunc
floating point
Copyright © 2025 Donal Fellows