You can do this by getting the log base 10 of the number. [[expr log10($number)]] You can get the regexp of the number, and then get the string length of the digits to the right and left of the decimal point. In my case, I had a variable called precision, which determined how many places beyond the decimal point were displayed. So, for precision = 2, .007 would be displayed as .01 To determine if this rounding was occuring: ====== set non_rounded_number $my_value set rounding_p [expr (-1 * log10($non_rounded_number)) > $precision] if {$rounding_p} { # we have rounding } ====== ---- [Lars H]: I'm not sure who wrote the above, or what the code would be useful for, but I suspect the casual user who is having a problem with something similar would be better off reading about [format] (the %e, %f, and %g specifiers in particular) and [A real problem]. <> Mathematics