|
1
5
双精度数字的精度不超过15位有效(十进制)数字。绝对不可能“正确地获得任意数量的数字”;
既然你说你对17个重要数字感到满意,那就用
|
|
2
4
我想了很久了。你失去了精度,因为你通过乘以10的某个幂来标准化(你选择了[1,10]而不是[0,1],但这是一个小细节)。如果你用2的幂来进行标准化,你不会失去精度,但是你会得到“十进制数”*2^e;你可以实现bcd算法并自己计算乘积,但这听起来并不有趣。
我很有信心你能分两杯羹
至于精度的小数位数, IEEE binary64 有52个二进制数字。52*log10(2)=15.65。。。(编辑:正如您所指出的,往返需要超过16位数字) |
|
|
3
3
Printing Floating-Point Numbers Quickly and Accurately How to Print Floating-Point Numbers Accurately ,但似乎需要ACM订阅才能访问。 由于前一篇论文是在2006年重印的,我倾向于相信它仍然是最新的。精确的理性算法(需要动态分配)似乎是一个必要的恶魔。 |
|
|
4
2
|
|
|
5
2
|
|
|
6
1
做
另一个选择是尝试
to find implementation of
|
|
|
7
1
你看过报纸了吗
uClibc implementation
属于
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 11 月前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 12 月前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |