cle*_*ong 4 c c++ floating-point
可能重复:
实数 - 如何确定是否需要浮点数或双精度数?
我正在尝试检查从double到float的转换是否会导致精度损失.显然,我可以进行转换并将float转换回double并将其与原始值进行比较.我很好奇是否有更直接的方式.
转换为浮动和返回通常是最有效的解决方案; 在大多数常见架构中,它只需要几条指令,每条指令的延迟为几个周期.这也具有既简单又正确的优点.
在没有浮点硬件支持的平台上,您可以通过拆分数字来检查更有效,并检查指数和有效数是否适合单精度,但这是一个相对不常见的角落情况,并且这更容易出错,并且无法移植到使用不同FP格式的平台.