0

我需要一些帮助,在 java 中将一个大的 double 转换为 int:

(int)System.currentTimeMillis(); //result -186983989 (java)

结果总是返回 int32.minvalue,但我需要与 java 相同的结果。但在 C# 中:

DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan span = DateTime.UtcNow - Jan1st1970;
Int32 resultado = (int)span.TotalMilliseconds; //result is always -2147483648 and i need same as java

在此先感谢,可以看到这张图片https://public.blu.livefilestore.com/y1pwU6fnT0v663NPqa7cSwwU9MSFQeO1TjdOdip1GFn8Eqg0Fgo_rsA3ER2jw5RDpXGOa1WiMc_PFIzzjxkqWe9zQ/wtf.png?psid=1

4

1 回答 1

2

Anint的范围为 -2,147,483,648 到 2,147,483,647。结果比这要大得多。您将需要具有更大范围的更大数据类型。尝试long代替int.

long resultado = (long)span.TotalMilliseconds;

结果:

resultado   1335553169530   long
于 2012-04-27T18:56:27.460 回答