Scroll to navigation

fpclassify(3tcl) Tcl Float Classifier fpclassify(3tcl)


fpclassify - Floating point number classification of Tcl values


package require tcl 8.7

fpclassify value


The fpclassify command takes a floating point number, value, and returns one of the following strings that describe it:

value is a floating point zero.
value is the result of a gradual underflow.
value is an ordinary floating-point number (not zero, subnormal, infinite, nor NaN).
value is a floating-point infinity.
value is Not-a-Number.

The fpclassify command throws an error if value is not a floating-point value and cannot be converted to one.


This shows how to check whether the result of a computation is numerically safe or not. (Note however that it does not guard against numerical errors; just against representational problems.)

set value [command-that-computes-a-value]
switch [fpclassify $value] {

normal - zero {
puts "Result is $value"
infinite {
puts "Result is infinite"
subnormal {
puts "Result is $value - WARNING! precision lost"
nan {
puts "Computation completely failed"
} }


expr(3tcl), mathfunc(3tcl)


floating point


This command depends on the fpclassify() C macro conforming to “ISO C99” (i.e., to ISO/IEC 9899:1999).


Copyright © 2018 Kevin B. Kenny <>. All rights reserved
8.7 Tcl