浮点数不能被精确的存储,但是为什么可以被精确的输出

如题所述

float型有8位有效数字;double型有16位有效数字。由于进制的不同,通常的十进制小数不能用有限位的二进制小数表示。多余的位数通常就采用“0舍1入”的原则(类似于十进制的“四舍五入”)。所以刚好遇到“进”的情况就会发生偏大,而遇到“舍”时就会发生偏小。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-13
浮点数,即双精度double型或单精度float型,拿双精度的double来说,定义一个double型的变量,如 double a;那么a在内存中开辟了一个32位的空间来存储变量a,但是你要存储变量a,计算机要将浮点数a用一个定点整数和一个定点小数表述,在对阶码的时候,由于各个计算机CPU的字长不一样,可能造成对阶时产生小数部分丢失,这样造成了存储不准确。建议看看组成原理。本回答被提问者采纳
相似回答