我正在将一些代码移植到.Net平台,发现Delphi中的Trunc方法无法正常工作。它无法区分截断正数还是负数,而是将参数视为绝对值。
Delphi
Trunc(-163.78999) returns -163
.Net实现
System.Math.Floor(-163.88888888888889) returns -164.
我可以模仿实现,但我想知道是否有人之前见过这种情况。
谢谢,
Trunc
函数性能符合设计预期。文档表示(重点在于):
Delphi等价于.net的将实数截断为整数。
在Delphi代码中,Trunc函数将实型值截断为整型值。X是一个实型表达式。Trunc返回一个Int64值,它是向零舍入的X的值。
System.Math.Floor
是Floor
。Trunc
相对应的.net版本是Math.Truncate
。
Math.Truncate
怎么样? - spender