例如,使用Matlab。假设我提供了一个输入
a=0.1
第一步是以二进制表示法转换此字符串。在此步骤中,语言考虑了多少位以进入舍入步骤?
有人可以就这个问题提出一些进一步的参考书目吗?
考虑双精度。
答案 0 :(得分:0)
假设IEEE 754加倍,53位精度。由于0.1无法准确表示,因此您将在所有52位上设置或取消设置随机模式的位(前导位隐含一位);
答案 1 :(得分:0)
无限多。根据IEEE 754-2008,从十进制字符序列到浮点格式的舍入使用“正确的舍入”(第5.12.2节,第3段)。正确的舍入将“无限精确的结果转换为浮点数”(第2.1.12节)。
当然,计算机无法使用无限多个位进行物理工作,但转换的执行方式与此相同。这意味着IEEE 754的正确实现必须使用能够获得正确结果的算法。
我无法谈论Matlab是否符合IEEE 754。