【发布时间】:2017-02-15 08:02:23
【问题描述】:
我的场景中有 6 个 InputField。它们的内容类型是十进制。
我从这些输入字段中获取值并检查它们的总和是否等于 100.02。我都输入了 16.67。
float fireP = float.Parse(firePercentage.text);
float waterP = float.Parse(waterPercentage.text);
float lightP = float.Parse(lightPercentage.text);
float nightP = float.Parse(nightPercentage.text);
float natureP = float.Parse(naturePercentage.text);
float healthP = float.Parse(healthPercentage.text);
float total = fireP + waterP + lightP + nightP + natureP + healthP;
if (total == 100.02f)
{
Debug.Log("It's equal");
}
else
{
Debug.Log(" Not equal. Your sum is = " + total);
}
我在控制台日志中收到“不等于。您的总和为 = 100.02”。 无论如何,您知道为什么会发生这种情况吗?
【问题讨论】:
-
调试模式下total的值是多少?
-
@fubo double 就够了。关键是浮点数应该不比较是否相等
-
@MarkoJuvančič 它是 100.02... 但经过更多研究,我发现 Debug.log 显示四舍五入的值。
标签: c# unity3d floating-point