TCL中是否有浮点数取模函数?%运算符报错如何解决?
TCL中实现浮点数取模的方法
TCL的%运算符仅支持整数操作数,对浮点数使用会触发报错,以下两种方法可实现浮点数取模:
使用内置的
fmod函数(推荐)fmod是TCL专门用于浮点数取模的函数,返回结果的符号与被除数一致,用法示例:% set a 10.0 10.0 % set b 3.0 3.0 % puts "[expr {fmod($a, $b)}]" 1.0手动计算取模结果
通过数学公式被除数 - 除数 * floor(被除数 / 除数)实现,可直接在expr中计算:% puts "[expr {$a - $b * floor($a / $b)}]" 1.0若需要结果符号与除数一致,可调整公式为
被除数 - 除数 * ceil(被除数 / 除数)(适用于被除数和除数符号不同的场景)。
内容的提问来源于stack exchange,提问作者flash
相关产品推荐
相关产品推荐

