赞
踩
今天犯了一个粗心的错误:
int a = 1, b = 2;
double c = 2.4;
double d ,e;
d = a/b *c;//1/2*2.4
e = (double)a/b * c;//1.0/2*2.4
cout << d << endl;//输出0,因为a和b都为int,不会转换为double型,故a/b=0
cout << e << endl;//输出1.2,因为a/b时,b被隐式转换为较高类型double
当遇到分数时,最好将分母或分子或者两者写成浮点形式 以免出错,如(1/2)*2.4写成(1.0/2)*2.4或者(1/2.0)*2.4或者(1.0/2.0)*2.4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。