main() {float f=123.456,d=12.67; printf("%f,%10.1f,%.2f",f,f,f); printf("%e,%9.1e,%.3e",d,d,d); }上面的程序答案里写的输出的是123.456001, 123.5,123.46 1.26700e+01, 1e+01,1.27e+01.那个123.456001的不是应该是123.456000,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 21:54:26
main() {float f=123.456,d=12.67; printf("%f,%10.1f,%.2f",f,f,f); printf("%e,%9.1e,%.3e",d,d,d); }上面的程序答案里写的输出的是123.456001, 123.5,123.46 1.26700e+01, 1e+01,1.27e+01.那个123.456001的不是应该是123.456000,
main() {float f=123.456,d=12.67; printf("%f,%10.1f,%.2f",f,f,f); printf("%e,%9.1e,%.3e",d,d,d); }
上面的程序答案里写的输出的是123.456001, 123.5,123.46
1.26700e+01, 1e+01,1.27e+01.那个123.456001的不是应该是123.456000,那个1是哪来的,还有之后的%e的输出看不懂,那个e+01是什么东西,求解释.
main() {float f=123.456,d=12.67; printf("%f,%10.1f,%.2f",f,f,f); printf("%e,%9.1e,%.3e",d,d,d); }上面的程序答案里写的输出的是123.456001, 123.5,123.46 1.26700e+01, 1e+01,1.27e+01.那个123.456001的不是应该是123.456000,
1.f=123.456,当采用%f格式输出时,小数点后要保持6位,由于float类型的精度问题,输出结果中往往由123.456000变成123.456001,这个1属于随机误差部分,精度造成的,如果f是double类型,输出就不会有这个问题了,可测试一下看.
2.%e格式输出,表示使用科学计数法,e+01,代表是10的1次方