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;
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); 高类型向低类型转换要强制转化的 单精度和双精度只有精确位数不同,其他没区别