首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最大可表示负浮点数

最大可表示负浮点数
EN

Stack Overflow用户
提问于 2010-09-03 05:40:55
回答 2查看 4.1K关注 0票数 2

什么是平台无关的方法来指定最大的负浮点数?

我们发现了一个在PS3的SPU上运行时崩溃的算法,但是在为PPU编译时运行得很好:

代码语言:javascript
复制
float x = -FLT_MAX;
/* stuff */
if (x > 0.0f) {
    // If x is unchanged, code is executed on SPU
}

本质上,是否有一个定义良好的FLT_MAX的负等价物?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-03 23:26:31

在不知道/*内容*/的情况下,我认为您的问题无法在这里完全解决。

这里有一组关于浮点计算中固有问题的幻灯片:http://realtimecollisiondetection.net/pubs/GDC07_Ericson_Physics_Tutorial_Numerical_Robustness.ppt --可能会给您一些提示,说明问题的来源。

IEEE754单精度浮点在SPU上与在PPU上不同--在http://cell.scei.co.jp/e_download.html提供的SPU文档第9章中有一个完整的解释,其中还包括单个精确浮点数的最大幅度。

票数 4
EN

Stack Overflow用户

发布于 2010-09-03 06:07:09

您想要std::numeric_limits::lowest(),但它只是c++0x,所以目前还不太跨平台。

你绝对不想要std::numeric_limits::min() --这是最小的震级,而不是最远的负值。

如果您想要的东西总是少于所有其他双倍,请使用-numeric_limits<double>::infinity()

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3633284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档