【发布时间】:2017-02-24 14:44:23
【问题描述】:
我解决了一个问题访问http://www.spoj.com/problems/CHI_ROOT/
(找到一个数的第 n 个根并打印结果的前 101 个有效数字
没有小数点,尾随和前导零)使用long double。
sizeof(long double)=12;
因此为long double 变量分配的总位数为 96 位(12*8)。
变量可以存储的最大值约为 10^28。
我想知道变量在小数点后最多可以存储多少位 它是如何存储的?
【问题讨论】:
-
大多数系统中的浮点数用IEEE floating point format表示。
-
80 位,而不是 96 位,其中 64 位存储尾数。因此它可以表示 pow(2, 64) = 1.8E19 个不同的值。所以不要超过 19 位有效的十进制数字。在对值进行任何数学运算时,您将很快失去一个,只需将十进制转换为二进制,例如乘以并转换回十进制就足够了,因为该值需要四舍五入三倍。所以使用 18 作为实用值。
标签: c++ types double precision