float doesn't register

本文关键字:register doesn float | 更新日期: 2023-09-27 17:50:58

示例:

Output when debugging: bVar= 0.0

我错过了什么?

float doesn't register

您正在划分整数,而不是浮点。

请改用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);