2
|
Christian Vincenzo Traina · 技术社区 · 5 年前 |
1
2
精度为15位有效数字的浮点十进制数转换为64位二进制浮点数(
当除以100时,二进制结果仍有64位精度,可能以最小精度(manitissa的最低位)为单位出现错误,除非结果低于0(请参见 What Every Computer Scientist Should Know About Floating-Point Arithmetic 换言之,如果小数位数不超过15个有效数字,那么将它们除以100将保持该精度。
E、 g.尝试
|
2
0
如果
十
是一个15位十进制整数,然后转换
到JavaScript
笔记:
JavaScript是ECMAScript的一个实现,在
Ecma-262
IEEE-754基本64位二进制浮点格式使用53位有效位。 二进制浮点数的最小精度单位(ULP)是指赋予其有效位中最低有效位位置的值。(因此,具有指数的ULP标度)在ULP中测量,所有正常的53位有效位都在[2]中 ULP,2号 53个 对于一个15位有效数字十进制数,这里的ULP是属于15位的值 第 外稃
首先,我们建立了一个众所周知的事实:将15位有效的十进制数字转换为
如果 十 是浮点格式(2)正常范围内的15位有效小数(不一定是整数 ¤ | 十 1024个 ),然后转换 精确到以浮点格式表示的最接近的值,然后将结果转换为15位有效的十进制数字 ,当两个转换都以舍入到最接近的方式执行时,将与偶数绑定。看这个,让 是的 是第一次转换的结果。如果 不同于 十 十 ,然后 十 是最接近的15位有效数字 是的 因此必须是第二次转换的结果。 在第一次转换中,结果 是的 最多是来自 ,由于舍入规则。相对精度不超过/2 52个 是的 十 二分之一以上 . 最坏的情况是 十 可能是999999999999=10 15个 所以相对于ULP的误差 会是(10 15个 53个 ,约为0.111倍 . 因此, 是的 十 小于它的ULP,所以转换 返回到15位有效小数 . 证明
十
是一个15位十进制整数,它在
十
到
然后,根据四舍五入运算结果的规则
十
由100产生最接近
/100英镑。叫这个
是的
十
/100是一个可以用15个有效小数表示的数字。(它可以用科学符号写成
十
2个
或者在源代码中作为
十
后缀为
|
crappidy · 在scapy中绑定自定义层 7 年前 |