【发布时间】:2012-12-20 22:28:37
【问题描述】:
if(number > 999999999)
{
int n_billions;
n_billions = number/1000000000;
cout << number;
number -= n_billions*1000000000;
cout << number;
}
如果我让 number = 9000000000(九十亿),我不明白为什么在我运行程序后变量 number 而不是 0 是 8589934592。
难道这个数字是 long long 类型而 n_billions 是 int 吗?
【问题讨论】:
-
简短的回答:是的。长答案:是的。
-
number -= n_billions*1000000000LL; -
但我之前问过是否可以将 int 减去 long long,其他人告诉我强制转换是自动的。
-
@Paolo :是的,您可以从 long long 中减去一个 int,但您不一定将 结果 存储到 int 中。
-
可以使用余数运算符而不是乘法和减法:
number = number % 1000000000,可以更简洁地写成number %= 1000000000;。
标签: c++ int long-integer