我写了这个代码,但有时相同的输入不会给我相同的输出。例如,输入 128 或 97。我的 C# 代码是:age = int.Parse(Console.ReadLine());double result1 = age *3.156e7;int result2 = age * 31560000;
1 回答

繁星淼淼
TA贡献1775条经验 获得超11个赞
int
最大值为 2,147,483,647 和 128 * 31560000 = 4,039,680,000,大于 int 最大值,您将获得整数溢出
但年龄 * 31560000 输出一个,其最大值也如上int
如果你这样做并不重要
int = age * 31560000
或
long = age * 31560000
(在这里,您希望获得您想象中的结果,但您仍然会得到溢出,因为编译器首先计算多个结果,然后将其插入到结果中)
要解决这个问题,你可以做这样的事情
long result2 = age * Convert.ToInt64(31560000);
因为编译器在这里寻找更高的格式并根据其操作
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消