繁体   English   中英

检查浮点数是否为tcl中的整数

[英]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中做类似的事情? 如果不是这样的话,另一种可能是-

  • 取numberTwo的十进制值并检查它是否为0或非0

所以需要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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM