use*_*118 0 c++ double division
我对此问题有些困惑:
int a = 5, b = 2;
double c = a / b;
cout << c;
Run Code Online (Sandbox Code Playgroud)
输出:
2
Run Code Online (Sandbox Code Playgroud)
为什么呢
我可以通过使用以下方式通过:
double aa = a,
bb = b;
c = aa / bb;
Run Code Online (Sandbox Code Playgroud)
输出:
2.5
Run Code Online (Sandbox Code Playgroud)
救命 !:(
在C ++语言中,两个整数值之间的任何算术运算都将返回一个int值。换句话说,整数除法是欧几里得除法。只有这样,该整数值才会转换为双精度。
如果要进行双精度运算,则必须强制除法对双精度值进行运算,方法是将一个操作数转换为双精度数,或者将其乘以1.0一个双精度常数:
double c = 1.0 * a / b;
Run Code Online (Sandbox Code Playgroud)
要么
double c = static_cast<double>(a) / b;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2539 次 |
| 最近记录: |