[英]Checking if floating point number is whole number in tcl
我是tcl的新手。 我正在尝试检查给定的数字是否为整数,但是似乎找不到简单的方法来做到这一点。
所以我有一个number2正在检查它是否在网格上。 如果不是整数,则它不在网格上。
set numberOne 7.5
set grid 2.5
set numberTwo [expr ($numberOne/$grid) ]
if {[string is integer -strict $numberTwo} {
do something
} else {
do something else
}
上面的代码对我不起作用,因为numberTwo将作为浮点数返回(本例中为3.0)
Python有这样的东西:
x = 7.5
y = 2.5
z = x/y
if z%1 == 0
then do something
else
do something else
有没有办法在tcl中做类似的事情? 如果不是这样的话,另一种可能是-
所以需要6.555的东西返回555,并需要6.0并返回0。
if {$value == 0} {then do something} else {do something else}
看来您可能不了解Tcl数学函数 。
if {$value == floor($value)} {
// ...
}
这实际上是许多人正在寻找的解决方案;)
proc is_float_whole { float } {
return [expr abs($float - int($float)) > 0 ? 0 : 1]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.