一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java長整除問題淺談

java長整除問題淺談

2019-10-22 11:33java技術(shù)網(wǎng) Java教程

這篇文章主要介紹了java長整除問題,有需要的朋友可以參考一下

代碼如下:


public class Change{ 
 public static void main(String args[]){ 
final long L1=24* 60 * 60 * 1000 * 1000;
final long L2=24* 60 * 60 * 1000;
System.out.println(L1/L2);
 } 
}
/**
*   output: 5
*/  

 

為什么輸出的是5呢?

再看下面的代碼輸出:

 

復(fù)制代碼代碼如下:


public class Change{ 
 public static void main(String args[]){ 
final long L1=24L* 60 * 60 * 1000 * 1000;
final long L2=24L* 60 * 60 * 1000;
System.out.println(L1/L2);
 } 
}
/**
*   output: 1000
*/

 

這個的輸出才是我們想要的結(jié)果。到底發(fā)生了什么?

      這是因為常數(shù)L1的計算“確實”溢出了。盡管計算的結(jié)果適合放入long中,并且其空間還有富余,但這個結(jié)果并不適合放入int中。這個計算完全是以int運算來執(zhí)行的,并且只有在運算完成之后,其結(jié)果才被提升到long,而此時已經(jīng)太遲了:計算已經(jīng)溢出了,它返回的是一個小了200倍的數(shù)值。從int到long是一種拓寬原始類型轉(zhuǎn)換,它保留了(不正確的)數(shù)值。這個值之后被L2整除,而L2的計算是正確的,因為它適合int運算。這樣整除的結(jié)果就得到了5。

      那為什么是int運算來執(zhí)行的呢?因為所有乘在一起的因子都是int數(shù)值。當(dāng)你將兩個int數(shù)值相乘時,你將得到另一個int數(shù)值。java不具有目標確定類型的特性,只是一種語言特性,其含義是指存儲結(jié)果的變量的類型會影響到計算所使用的類型。

     通過使用long常量來替代int常量作為每一個乘積的第一個因子,就可以很容易的訂正這個程序。

     這個教訓(xùn)很簡單:當(dāng)你在操作很大的數(shù)字時,千萬要提防溢出,即使用來保存結(jié)果的變量已顯得足夠大,也并不意味著產(chǎn)生結(jié)果的計算具有正確的類型。當(dāng)你拿不準時,就使用long運算來執(zhí)行整個計算。

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 爽爽窝窝午夜精品一区二区 | 成人免费福利网站在线看 | 激情视频激情小说 | 青青草在视线频久久 | 奇米影视亚洲狠狠色 | 激情图片 激情小说 | 国产1区2区三区不卡 | 逼中极品| 日本一卡二卡3卡四卡无卡网址 | 香蕉久久夜色精品国产小优 | 无人在线高清观看 | 视频在线观看高清免费看 | 欧美性xxxxx| 色一情一乱一伦 | 亚洲国产日韩欧美在线vip1区 | www在线看| 激情图片 激情小说 | 天使萌痴汉在线中文字幕 | 国产精品66福利在线观看 | 公园暴露娇妻小说 | 国产偷窥 | 国产精品全国探花在线观看 | 99成人国产精品视频 | 桃色综合网| 亚洲欧美韩国日产综合在线 | 色综合合久久天天综合绕视看 | 精品丰满人妻无套内射 | 亚洲国产精品一区二区首页 | 国产91素人搭讪系列天堂 | www.四虎影| 亚洲午夜精品久久久久久成年 | 2022国产麻豆剧传媒古装 | 嗯啊好大视频 | 天天翘 | 日韩欧美国产在线 | 欧美日韩精品乱国产538 | 色就色欧美综合偷拍区a | 久久这里只有精品视频e | 国产成人免费片在线观看 | 精品免费视在线视频观看 | 四虎精品永久免费 |