在比较时,我得到了非常不同的结果,看起来像是相同的浮点比较语句.奇怪的是,这两个陈述在64位中都是正确的,而在32位中,结果不相等.
即使我明确地将'132'和/或'initial'转换为Int32,32位的结果仍然是相同的.
int initial = 134;
float initialConverted = initial/255.0f;
// both are true in 64, abs2 is false in 32
var abs = Math.Abs(initialConverted - (134/255.0f)) < float.Epsilon;
var abs2 = Math.Abs(initialConverted - (initial/255.0f)) < float.Epsilon;
Run Code Online (Sandbox Code Playgroud)
当整数值存储在自己的字段中时,为什么划分存在问题?