- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在某处看到这段代码
printf("DBL_MAX : %g\n", (double) DBL_MAX);
Actor 是必要的吗?我在标准中找不到任何指定 DBL_MAX
必须实际具有(或提升为)类型 double
的内容。
最佳答案
DBL_MAX
被指定为宏,因此其本身没有类型。
1999 年 C 标准的要求是 DBL_MAX
必须扩展为一个至少为 1E+37
的常量值,但没有说明它的实际类型。因为它表示 double
可以表示的实现定义的最大值,逻辑上会建议扩展是一个可以转换为 double
的值,无需任何更改(例如损失精度)。
此逻辑允许但不要求 DBL_MAX
为 double
类型。它也可以是 long double
类型(因为还要求 long double
可以准确表示 double
可以表示的所有值)。
实际上,很难想象一个将 DBL_MAX
扩展为非 double
类型常量的实现,我当然从未听说过这样的实现。但这并不意味着它是必需的。 printf("DBL_MAX : %g\n", (double) DBL_MAX)
提供了一个保守的(在为允许的可能性做准备的意义上,即使它可能不会发生)保证double
类型的值被传递给 printf()
。
关于c - DBL_MAX 的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41950619/
我正在尝试为所有可表示的有限值生成具有大致相等概率的随机 double 。我相信这类似于随机签名的 exponential_distribution,uniform_distribution 将不起作
在 Visual C++ 2010 中,我试过这个 double d= DBL_MAX; double dblmaxintpart; modf(DBL_MAX, &dblmaxintpart); 在我
如果之前有人问过这个问题,我深表歉意,但我通读了许多 DBL_MAX 线程,但没有看到这个确切的问题。 在我的 float.h header 中,变量定义为 #define DBL_MAX
我刚刚读到有关 IEEE 754 的信息标准以了解如何single-precision和 double-precision实现了 float 。 所以我写了这个来检查我的理解: #include #
代码 #include #include #include int f( double x, double y, double z){ return (x+y)+z == x+(y+z); }
我在某处看到这段代码 printf("DBL_MAX : %g\n", (double) DBL_MAX); Actor 是必要的吗?我在标准中找不到任何指定 DBL_MAX 必须实际具有
这一行: NSLog(@"DBL_MAX: %f", DBL_MAX); 打印这个非常大的值:17976931348623157081452742373170435679807056752584499
我代表一个“物理上不可能”的值,在计算机上可能代表的最负值。 #include double physically_impossible = -DBL_MAX; 这个测试效果很好 if( physi
我在我的 iPhone 上运行这段代码: double d = DBL_MAX; NSString *s = [NSString stringWithFormat:@"%.0f", d]; doubl
我想要极端的值(value)。 #include using namespace std; #include #include #include #define THRESHOLD 2*DBL
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我正在编写一个 ptree,在某些时候我需要将 DBL_MAX 放入(作为默认值)。打开生成的 xml 文件时,我看到了正确的数字。 但是当我使用 ptree.get 获取数字时抛出异常:conver
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我使用的是 Embarcadero RAD Studio 的评估版。我为静态库中的代码和主应用程序中的代码获得了不同的 DBL_MAX 值。 代码是 双 x = DBL_MAX; 在静态库的代码中,x
我的一个函数返回一个 double,我想用一个无效值来指示错误条件,例如 DBL_MIN、DBL_MAX 或 -DBL_MAX。 #include #include #include doubl
我正在登录(写入文件)backgroundTimeRemaining每次我的应用程序从挂起模式唤醒时的值,就在我使用过期处理程序开始 UIApplication 的后台任务之前,就像这样(在我发出网络
我正在查看由以下代码片段生成的日志消息。 Flog 是用于调用内部日志记录类的#define。 代码来 self 项目中包含的 Pod 中的源文件。我不知道这是否重要。 我对这条消息感到困惑,因为在执
源代码(我不确定这是哪个版本,它只是网站的摘录)。在 for 循环的最开始,注释说“我们已经获得了足够的数字,我们将忽略其余的”。 为什么这是真的?为什么这“并不一定意味着结果会溢出。”? /* Co
在我的代码中,我使用了在 math.h 中定义的 DBL_MAX。在 VS2010 中它工作正常,但在 VS2008 中出现错误: error: C2065: 'DBL_MAX' : undeclar
在进行转换测试时,我在 C++ 中遇到了一些奇怪的行为。 上下文 网上的C++引用表明std::numeric_limits::max()的返回值(在 limit.h 中定义)应该是 DBL_MAX
我是一名优秀的程序员,十分优秀!