https://s1.ax1x.com/2020/08/04/a02UKI.jpg 风过无痕1989 发表于 2020-7-31 13:51
我用的是VC++6.0,输出没有问题
我发了截图了,你看一下。并不是啊{:5_94:} 永恒的蓝色梦想 发表于 2020-8-1 14:11
因此,我们得出一个结论:
要么楼主描述问题错了,要么楼主在胡说。
我发了截图了,请看一下,我也不明白是为了什么。 本帖最后由 风过无痕1989 于 2020-8-4 16:38 编辑
会反光的小行星 发表于 2020-8-4 15:38
我发了截图了,你看一下。并不是啊
我又用两个编译器试了一次,你没说错,VC++6.0编译器分开输出,那个“小数” 20 被忽略了,而DEV_C++编译器,分不分开输出结果都是一样的,“小数” 20都被忽略了
浮点数在内存里是以二进制小数保存的,而在十进制中的有限小数到了二进制中就有可能变成循环小数(比如20表示成二进制就变成了00000000 00000000 00000000 00010100),二进制循环小数存储时只能被截断存储,于是再转换成十进制输出就会有误差
我去查了一下:ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,有的系统将double所增加的32位全用于存放小数部分,这样可以增加数值的有效范围,减少舍入误差。有的系统则将所增加的位(bit)一部分存放指数部分,这样可以扩大数值范围。 会反光的小行星 发表于 2020-8-4 15:39
我发了截图了,请看一下,我也不明白是为了什么。
不知道,我这里全都出现了误差{:5_94:} 楼主这么个问题,要理解两个月?
页:
1
[2]