它不应该是0吗?我可以用什么来正确地围绕它?
更新:
该数字是(lineDirection.X / distance)的结果;
其中lineDirection.X是一个整数,而distace是double.
procedure _ROUND; asm ... FISTP qword ptr [ESP] ... end;
根据英特尔Instruction Reference,根据FPU控制字的RC字段指定的舍入模式,值“舍入为整数值”
因此,我建议您检查FPU控制字的RC字段是否设置为您需要的舍入.
您可以通过使用整个控制字来执行此 *** 作 – 请参阅Set8087CW,以及相关的xxxx8087CW过程/函数,以及Default8087CW变量.
或者你可以试试Math.SetRoundMode,正如@Uwe Raabe建议的那样.您的情况听起来像是使用了rmUp或rmTruncate rmDown.
从理论上讲,你的cpu也是原因,但事实并非如此.
总结以上是内存溢出为你收集整理的delphi – 为什么Round(-0.0066219357357)返回-1?全部内容,希望文章能够帮你解决delphi – 为什么Round(-0.0066219357357)返回-1?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)