<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    littleQ

    終于明白曾經他們失落的目光,當年的你們是否一樣;間有懈怠或有頹放,難知多久方能補上;今起,不再彷徨!

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      33 Posts :: 0 Stories :: 60 Comments :: 0 Trackbacks
    Date date = new Date();
    Date thirty 
    = new
     Date();
    thirty.setTime(date.getTime()
    -30*24*60*60*1000);
    乍一看,這段代碼"正確無比"。
    比如今天是2008-09-23
    System.out.println(date);

    輸出:Tue Sep 23 14:24:27 CST 2008
    可是

    System.out.println(thirty);

    輸出:Mon Oct 13 07:27:14 CST 2008
    很明顯,結果是錯誤的。原因在:30*24*60*60*1000。date.getTime()是long類型,30*24*60*60*1000是會隱式的轉換成long類型,可是在轉換之前,就已經溢出了!

    System.out.println(30*24*60*60*1000);

    輸出:-1702967296
    已經溢出了,再轉換成long類型,也是負數了。
    但是在乘之前就做類型轉換,就不會有問題。30 * 24 * 60 * 60 * 1000L

    在24*24*60*60*1000的時候,還是不會溢出的,在25的時候就溢出了。

    posted on 2008-09-23 18:26 littleQ 閱讀(136) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航: