C/C++ 标准对 double
的最小有效十进制数字有什么保证? ?
C++ 标准实际上在 § 18.3.2.4/10 的脚注中说这相当于 DBL_DIG
如 C 标准中定义的那样。但是我在 C 标准中找不到任何关于最小值的信息。
那么,以下其中一项的最小值是多少?
-
std::numeric_limits<double>::digits10
-
DBL_MANT_DIG
编辑:不,DBL_DIG
最佳答案
你不会在 C++ 标准中找到它,因为 C++ 在这个标准上遵循 C 标准。对于十进制数字,最小值为:
FLT_DIG 6
DBL_DIG 10
LDBL_DIG 10
因此,float
为 6 位,double
和 long double
为 10。 (这是保证从 text 到 type 并返回的转换将产生相同值的位数。)
请注意,DBL_MANT_DIG
对应于基数中的位数,因此通常是二进制位数,而不是十进制位数。
关于c++ - double 的有效小数位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225786/