- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我将 0.4543543234343654632452452525254e-323
分配给 double
变量 a
并打印它,尽管它小于 DBL_MIN
,它仍然可以分配和打印。
DBL_MAX: 1.79769e+308
FLT_MAX: 3.40282e+38
DBL_MIN: 2.22507e-308
FLT_MIN: 1.17549e-38
a: 4.94066e-324
为什么会这样?
最佳答案
其实DBL_MIN
不是最小值而是最小值normalized value这是可表示的。
不同之处在于前导数字对于规范化值是 1,而对于非规范化数字是 0。注意denormal numbers在具有 float 处理单元的硬件上可能会遇到严重的性能问题,无法在硬件中管理它们。
但是您的值 0.454354e-323
对应于 4.545354e-324
小于用 double
表示的最小非正规数>,实际上它四舍五入为 4.94066e-324
,这是可以存储在 double
中的实际最小数字。
关于c++ - 为什么可以打印小于 DBL_MIN 的双数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37494878/
我试图在一个循环中确定 DBL_MIN(为了测试另一个问题),我对输出感到惊讶: double tmp(1.0); double min(tmp); while(tmp>0) { tmp/=2
我将 0.4543543234343654632452452525254e-323 分配给 double 变量 a 并打印它,尽管它小于 DBL_MIN,它仍然可以分配和打印。 DBL_MAX: 1.
问:DBL_MIN 是最小的正 double 吗? 下面的代码似乎没有回答这个问题。但如果这是真的,那么 DBL_MIN 是如何定义的,它的用途或目的是什么。 平台:Windows7 & Visual
我的一个函数返回一个 double,我想用一个无效值来指示错误条件,例如 DBL_MIN、DBL_MAX 或 -DBL_MAX。 #include #include #include doubl
在求 double 的平方根倒数时,将无效的非正输入限制在 0.0 或 MIN_DBL 哪个更好? (在我下面的示例中 double b 可能由于浮点舍入错误而最终为负,并且因为物理定律在游戏中略微被
为什么表达式 DBL_MIN 0.0 { print("3. DBL_MIN is larger than zero?") // prints (unexpected) } if DBL_M
此程序在第一个命令行参数上调用 strtod() 并打印返回值: #include #include #include #include int main(int argc, char **a
我是一名优秀的程序员,十分优秀!