float 精度为7位有效数字,double 精度为14位有效数字。由于 计算机用 2进制,10进制数据输入后会转化为2进制,输出时又转回来,这种转换会引入误差 (通常说法 “化不尽”)。你可以改double 作比较:double f1,f2; f1=12.34; f2=56.78;printf("\n%f,%f",f1,f2); -- 输出为 12....
因为很多十进制小数,用二进制都无法表示,比如0.1, 用二进制表示是无限循环小数。十进制(0.1)=二进制(0.0001100110011...)计算机是用二进制表示数的,存储的位长有限,只能截掉,所以误差就产生了。所以在一些要求四舍五入严格精度的场合,最好把浮点数转换为 整数来计算,否则可能在某些特殊的...
;float和double型数据从主存装入浮点寄存器时有可能发生舍入,造成精度损失float、double和long double三种类型数据都按80位格式存放在浮点寄存器中提供8个80位浮点寄存器ST(0)~ST(7),采用栈结构,栈顶为ST(0);float、double和long double型数据存入主存时,分别占32位、64位和96位 相关知识点: 试题来源: 解析 ...
A.float和double型数据从主存装入浮点寄存器时有可能发生舍入,造成精度损失B.提供8个80位浮点寄存器ST(0)~ST(7),采用栈结构,栈顶为ST(0)C.float、double和long double三种类型数据都按80位格式存放在浮点寄存器中D.float、double和long double型数据存入主存时,分别占32位、64位和96位相关...