与此问题相关:Printf width specifier to maintain precision of floating-point value。
我想打印使用双n
作为d
表示的数字n = 2^d
的有效数字。
是否有d
的函数来计算n
的有效数字?有效数字的最大数量(大于0
)也可以,例如DBL_DIG
中的float.h
。
编辑:
我将对d
进行许多添加,以便2^d
>> MAX_DOUBLE。因此我怀疑n
中的有效位数将小于d
的有效位数。这是真的?通过添加我的意思是(希望这是有道理的):
让n = n1 + n2
,n1 = 2^d1
,n2 = 2^d2
然后我会执行d = d1 + d2
,以便n = 2^d
。
我使用它的原因是因为让d
溢出几乎是不可能的,我可以在n
中失去很多精确度。