像java一样将double转换为int

时间:2012-04-27 18:54:38

标签: c#

我需要一些帮助,在java:

中为int添加一个大的double
(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

1 个答案:

答案 0 :(得分:2)

int的范围为-2,147,483,648到2,147,483,647。结果远大于此。您需要更大范围的更大数据类型。请尝试使用long代替int

long resultado = (long)span.TotalMilliseconds;

结果:

resultado   1335553169530   long