CS.FRACTION.LOSS
整数值相除并将结果分配给浮点实体时,可能丢失分数。
漏洞与风险
两个整数值相除后,结果也会截断为整数值(分数部分丢失)。结果分配给一个浮点变量后,该整数最有可能得到一个实数,并且不会丢失分数。
示例 1
复制
class Foo {
float Devider(long a, int b) {
decimal d;
float f = a / b; // defect
d = a / b; // defect
f = b % 2; // defect
f = a / f; // OK - one operand is not integral
return f;
}
}