【发布时间】:2018-05-18 21:23:42
【问题描述】:
Single singleVal = 0.9f;
int u = (int)(singleVal * 10.0f); # u = 8
我知道这可能是一个愚蠢的错误,但我不明白为什么上述表达式的结果是 8。出于明显的原因,我认为它会是 9。他们在 c# 中发生了一些我没有注意到的特殊情况吗?
【问题讨论】:
-
欢迎使用浮点数。玩得开心把你的头发扯下来:youtube.com/watch?v=PZRI1IfStY0
-
This answer 将帮助您更好地理解。使用
Single(float) 您只会得到一个近似值(因为该值存储为二进制点类型)。您可能要更改为Decimal(decimal)(存储为小数点类型)
标签: c# floating-point integer expression