Floating point 使用对数和浮点数的有效数字

Floating point 使用对数和浮点数的有效数字,floating-point,logarithm,Floating Point,Logarithm,与此问题相关: 我想将使用双精度d表示的数字n的有效位打印为n=2^d。 是否有计算n有效位的d函数?有效数字的最大值(大于0)也可以,如float.h中的DBL\u DIG 编辑: 我将对d进行许多添加,以使2^d>最大加倍。因此,我怀疑n中的有效位数将小于d中的有效位数。这是真的吗?我的意思是(希望这是有意义的): 让n=n1+n2,n1=2^d1,n2=2^d2然后我将执行d=d1+d2,这样n=2^d 我之所以使用它,是因为几乎不可能让d溢出,而且我很乐意在n中失去很多精度 我将使用这里

与此问题相关:

我想将使用双精度
d
表示的数字
n
的有效位打印为
n=2^d
。 是否有计算
n
有效位的
d
函数?有效数字的最大值(大于
0
)也可以,如
float.h
中的
DBL\u DIG

编辑: 我将对
d
进行许多添加,以使
2^d
>最大加倍。因此,我怀疑
n
中的有效位数将小于
d
中的有效位数。这是真的吗?我的意思是(希望这是有意义的):

n=n1+n2
n1=2^d1
n2=2^d2
然后我将执行
d=d1+d2
,这样
n=2^d

我之所以使用它,是因为几乎不可能让
d
溢出,而且我很乐意在
n
中失去很多精度


我将使用这里描述的一个函数:。

我不确定您所说的“计算
n
的有效数字”与“计算
n
”是什么意思。您想知道有多少个有效数字吗?(这与
d
的有效位数相同)@Sneftel:我在问题中添加了相关的用法细节,你的意思是
n=n1*n2
?@SimonByrne我不认为你所拥有的没有意义:日志空间中的加法对应乘法:
2^(d1+d2)=2^d1*2^d2