我有两个无符号长整数 l1
和 l2
。
我将这些数字转换为 float 并将它们保存为 f1
和 f2
。
f1 = (float) l1;
f2 = (float) l2;
现在考虑 l1
> l2
任意数量,比如 100。
是否存在 f1
<f2
这样的情况? (这里的f1
是由l1
转换过来的,它大于l2
)。如果是,您能否演示如何找到这样的数字?
sizeof(float) = 4 and sizeof(unsigned long long) = 8.
最佳答案
Can there be a case such that f1 < f2
否:对于任何舍入模式,从整数到 float 的转换都是递增的。只要不更改 l1 和 l2 转换之间的舍入模式,f1 和 f2 的顺序与 l1 和 l2 的顺序相同(尽管在 l1 和 l2 不同的地方它们可能相等)。
关于将 unsigned long long 转换为 float 并丢失精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634659/