float resultInteger = 0.0f;
float power = 1/2.0f;
for (i = highPointPosition+1; i <= highResultIndex; i++, power /= 2
resultInteger += result[i] * power;
power = 1.0f;
for (i = highPointPosition, power = 1.0f; i >= 0; i--, power *= 2)
resultInteger += result[i] * power;
if (carry == 1)
resultInteger += carry * power;
上面的代码将二进制转换为浮点数。我接到了一项作业,要求我将两个浮点数转换为二进制,然后将它们相加,然后将结果转换为浮点数。
在上面的代码中,当我执行3.5 + 5.39结果应该是8.89,而是8.889999。
对于其他人来说9.5 + 7.39,答案是正确的,即16.89。
任何人都可以帮助解释为什么我遇到这样的问题吗?
SMILET
慕桂英546537
相关分类