我写了这个代码,但有时相同的输入不给我相同的输出。例如,输入128或97。
我的C#代码为:
age = int.Parse(Console.ReadLine());
double result1 = age *3.156e7;
int result2 = age * 31560000;
int
最大值为2,147,483,647和128 * 31560000 = 4039680000比INT最大值时,你会得到一个整数溢出
而且年龄* 31560000输出int
其中他的最大值也如上
如果你没关系
int = age * 31560000
要么
long = age * 31560000
(在这里你期待,你认为得到的结果,但你会得到仍然得到溢出,因为编译器首先计算多个结果,然后将其插入结果)
要解决这个你可以做这样的事情
long result2 = age * Convert.ToInt64(31560000);
因为编译器会在这里根据其较高的格式和行为