Mar*_*kus 5 java math floating-point decimal fractions
众所周知decimal fractions(如0.1),当存储为floating point(如double或float)时,将在内部以"二进制格式"(IEEE 754)表示.并且一些小数部分不能直接以二进制格式表示.
我还没有理解的是这种"转换"的精确度:
1.)浮点本身可以具有精度(即"重要")?
2.)但是从小数部分到二进制部分的转换也有精度损失?
题:
从十进制分数转换为浮点分数时,最坏情况精度损失("所有"可能的小数部分)是多少?
(我想知道这个的原因是,当比较十进制分数与二进制/浮点分数时,我需要考虑精度...以确定两个数字是否相同.我希望这个精度是紧密/精确的尽可能 (decimal fraction == binary fraction +/- precision)
示例(仅假设)
0,1 dec => 0,10000001212121212121212 (binary fraction double) => precision loss 0,00000001212121212121212
0,3 dec => 0,300000282828282 (binary fraction double) => precision loss 0,000000282828282
Run Code Online (Sandbox Code Playgroud)
我并不完全清楚您想要什么,但您可能对以下论文感兴趣,该论文讨论了二进制/十进制转换中涉及的许多准确性问题,包括困难情况列表。
弗恩·帕克森和威廉·卡汉。用于测试 IEEE 十进制-二进制转换的程序。1991 年 5 月 22 日 http://www.icir.org/vern/papers/testbase-report.pdf
| 归档时间: |
|
| 查看次数: |
852 次 |
| 最近记录: |