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 に答える