这是一个关于浮点运算的跨平台一致性和确定性的问题(IE 在不同的 CPU/系统上产生不同的结果)
哪一个更有可能保持跨平台一致(伪代码):
float myFloat = float ( myInteger) / float( 1024 )
或者
float myFloat = float ( myInteger ) / float( 1000 )
平台是 C# 和 AS3。
.
AS3 版本:
var myFloat:Number = myInteger / 1000 // AS3
var myFloat:Number = myInteger / 1024 // AS3
- 好的,我添加了 AS3 版本以进行澄清,相当于上面的“C 伪代码”。正如您在 AS3 中看到的,所有计算,即使是整数,都会自动作为浮点数执行,不需要强制转换(也不能避免它或强制运行时执行真正的整数除法)希望这可以解释为什么我“强制转换”所有内容成花车:我不是!这只是在一种目标语言中发生的事情!