小编Mar*_*fli的帖子

为什么这个C#浮点比较仅在32位失败?

在比较时,我得到了非常不同的结果,看起来像是相同的浮点比较语句.奇怪的是,这两个陈述在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)

当整数值存储在自己的字段中时,为什么划分存在问题?

c# floating-point

3
推荐指数
1
解决办法
196
查看次数

标签 统计

c# ×1

floating-point ×1