问题描述:
我在看一本C语言的书时遇见了一个问题 3Q
是这么写的:许多C编译系统将实型常量作为双精度处理.例如已定义一个实型变量f,有如下语句:f=2.45678*4523.65
系统将2.45678和4523.65按双精度数据存储(占64位)和运算,得到的双精度的乘积,然后取前七位赋给实型变量f.这样可以保证计算更精确.
我不理解的是得到的乘积不是11113.612847吗 可是这个范围属于单精度啊 ,为什么一直用双精度,对于这类概念我很迷糊 ,感激不尽.解释越详细越容易明白越好
上面说 “然后取前七位赋给实型变量f,这样可以保证计算更精确”为什么这样就能计算更精确呢,还有他说的前七位是什么前七位 .我越看越糊涂了..你们看我的提问 能知道我哪个地方没学好哪里不明白吗 我自己都不知道我要问什么了~无奈 就是知道不理解!
是这么写的:许多C编译系统将实型常量作为双精度处理.例如已定义一个实型变量f,有如下语句:f=2.45678*4523.65
系统将2.45678和4523.65按双精度数据存储(占64位)和运算,得到的双精度的乘积,然后取前七位赋给实型变量f.这样可以保证计算更精确.
我不理解的是得到的乘积不是11113.612847吗 可是这个范围属于单精度啊 ,为什么一直用双精度,对于这类概念我很迷糊 ,感激不尽.解释越详细越容易明白越好
上面说 “然后取前七位赋给实型变量f,这样可以保证计算更精确”为什么这样就能计算更精确呢,还有他说的前七位是什么前七位 .我越看越糊涂了..你们看我的提问 能知道我哪个地方没学好哪里不明白吗 我自己都不知道我要问什么了~无奈 就是知道不理解!
问题解答:
我来补答展开全文阅读