| 关于单双精度的问题
|
减小字体
增大字体
|
问题:我要定义x=1.2;y=2.4;z=-3.61.当我定义他们为float时,系统报错truncation from const double to float ,为什么?2.当我要求显示printf(x=%8.6f,y=%8.6f,z=%9.6f\n,a,b,c);时,显示为 x=0.000000,y=0.000000,z=1.#QNANO,而我要求显示printf(x+y=%5.2f y+z=%5.2f z+x=%5.2f\n,x+y,y+z,z+x);时,就能正常显示结果,这是为什么呢?请问要怎么改正呢?
把整个程序贴上来 printf("x=%8.6f,y=%8.6f,z=%9.6f\n",a,b,c); a,b,c都是int数据,用f方式显示int,需要强制转化,这样直接写是无法正常转化为float数据的 x,y,z定义成什么应该不会报错,除非你声明的时候是double,之后赋值时又强制转换。 如果你对我要定义x=1.2;y=2.4;z=-3.61.当我定义他们为float时,系统报错truncation from const double to float ,为什么?2.当我要求显示printf(x=%8.6f,y=%8.6f,z=%9.6f\n,a,b,c);时,显示为 x=0.000000,y=0.000000,z=1.#QNANO,而我要求显示printf(x+y=%5.2f y+z=%5.2f z+x=%5.2f\n,x+y,y+z,z+x);时,就能正常显示结果,这是为什么呢?请问要怎么改正呢?这个问题有好的意见或
建议,请留言
|
|
[]
[返回上一页]
[打 印]
|
|
|