C语言的问题
#include <stdio.h>void main()
{
float a,b;
a=123456.789e5;
b=a+20
printf("%f\n",a);
printf("%f\n",b);
}
2.c
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\admin\2.c(5) : warning C4305: '=' : truncation from 'const double ' to 'float '
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\admin\2.c(7) : error C2146: syntax error : missing ';' before identifier 'printf'
Error executing cl.exe.
这是错在那里了呀
第三行,b = a + 20少了一个分号
b = a + 20;
float a, b;可改为double a, b;这样在输出的时候就不会损失精度。 错误:第7行少了一个分号;
把 floata, b;改为doublea, b; 同意楼上观点,补充说明,如果用float形式,%f要改为%lf。 福禄娃娃 发表于 2013-10-9 08:08 static/image/common/back.gif
第三行,b = a + 20少了一个分号
b = a + 20;
float a, b;可改为double a, b;这样在输出的时候就不会损失 ...
谢谢版主 听君一席话 胜艹1天逼啊:lol: 楼上说的并不正确,不是说double就不会丢失精度,而是丢失的幅度较小
会有第一个warning是因为a=123456.789e5f; //f加在后面,编译器就不会报一个警告
而第二个错误就是少了分号。 565123 发表于 2013-10-10 01:06 static/image/common/back.gif
楼上说的并不正确,不是说double就不会丢失精度,而是丢失的幅度较小
会有第一个warning是因为a=123456.78 ...
为什么加个f就不会报错呢,求解,
我是菜鸟
因为加了f,编译器就知道那是一个float,而不是一个double 加个f相当于进行了强制转换了,就不会在报错 了 warning C4305: '=' : truncation from 'const double ' to 'float '
error C2146: syntax error : missing ';' before identifier 'printf'
就是楼上说的情况 b=a+20 这里少了 ";"
float a,b 改为 double a,b 福禄娃娃 发表于 2013-10-9 08:08 static/image/common/back.gif
第三行,b = a + 20少了一个分号
b = a + 20;
float a, b;可改为double a, b;这样在输出的时候就不会损失 ...
对啊,少个分号。
页:
[1]