float doesn't register
本文关键字:register doesn float | 更新日期: 2023-09-27 17:50:58
示例:
Output when debugging: bVar= 0.0
我错过了什么?
您正在划分整数,而不是浮点。
请改用float bVarianza = (499f/ 500f);
。
您的表达式被评估为
CCD_ 2。
整数被除后(由于整数没有分形部分,因此结果为0(,结果存储在float类型的变量中,该变量添加了.0分形部分。
将int
除以int
,因此答案将截断为int
。也就是说,表达式499/500
被评估为0
。然后将0
存储在float
中,使其成为0.0
。
如果你说499F / 500
,那么表达式本身就是float
,你会得到一个分数结果。
根据MSDN:
除法将结果四舍五入为零结果是小于两个操作数的商的绝对值。结果为零或当两个操作数具有相同符号且为零时为正,或当两个操作数具有相反的符号时为负数。
因此,如果你想得到一个float
的结果,你应该强制转换像这样的类型
float bVarianza = (float)499 / (float)500;
如果其中一个操作数是实数,则只能强制转换结果:
float bVarianza = (float)(499/500.0);