C++单精度和双精度的区别

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:52:20
int a=2;
double b=3.3; //这里为什么必须是double呢?float b=3.3就出错啊
int c = (b*b)&&(++a);
cout<<c<<endl;

不会有错误吧,最多是个warning。因为这样的问题编译器查不出来的,属于逻辑问题。编译器只能查处语法问题。
还有在程序中的数据自动转换按以下方向进行:
char(short) -> int(long) -> float -> double

int c = (b*b)&&(++a); //注意,出现了自乘

最多也就是一个warning

说可能造成数据丢失

这好象是错的 int c=(b*b)&&(++a); 高类型向低类型转换要强制转化的 单精度和双精度只有精确位数不同,其他没区别