日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
為什么0.1+0.2不等于0.3?原來編程語言是這么算的……

 打開你的 Python,輸入「0.1+0.2=」,結(jié)果是多少?0.30000000000000004 對不對?為什么結(jié)果不是 0.3?本文作者給出了詳細的解釋。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計制作、成都做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)常熟免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

從小我們就知道 0.1 + 0.2=0.3。但是,在光怪陸離的計算世界中,運算方式卻大相徑庭。

我最近開始用 JavaScript 進行編碼,在閱讀數(shù)據(jù)類型時,我注意到 0.1 + 0.2 不等于 0.3 的奇怪行為。
我向 Stack Overflow 尋求幫助,在上面找到了一些有用的帖子。
如下圖所示:

 

Stack Overflow 界面圖像。

經(jīng)過大量的研究和數(shù)學(xué)運算后,我得出結(jié)論,這不是錯誤。
這是數(shù)學(xué)運算中的浮點運算。
讓我們進一步了解內(nèi)在機制。

問題描述:
為什么 0.1 + 0.2 = 0.30000000000000004?

如果你用 Java 或 C 語言編過程,那你一定知道用于存儲值的不同數(shù)據(jù)類型。
我們在前面的討論中將考慮兩種數(shù)據(jù)類型:
整數(shù)型和浮點型。

整數(shù)型存儲整數(shù),而浮點型存儲小數(shù)。

在這之前,我們先來了解一個小概念:
為了實現(xiàn)計算,數(shù)字是如何表示的?
極小數(shù)和極大數(shù)通常用科學(xué)計數(shù)法表示,即:
 

同樣,如果一個用科學(xué)計數(shù)法書寫的數(shù)字小數(shù)點前有一個非零的十進制數(shù),則該數(shù)字是標(biāo)準(zhǔn)化寫法。
例如,0.0005606 用科學(xué)計數(shù)法的標(biāo)準(zhǔn)化寫法為:

Significant 是指不包含零的有效數(shù)字,base 表示所使用的進制——此處為十進制(10)。
Exponent(指數(shù))表示小數(shù)點需要向左或向右移動的步數(shù)。

現(xiàn)在,有兩種顯示浮點數(shù)的方法:
單精度和雙精度。
在進行浮點運算時,單精度使用 32 位,而雙精度使用 64 位。

與許多其他編程語言不同,JavaScript 并未定義不同類型的數(shù)字數(shù)據(jù)類型,而是始終遵循國際 IEEE 754 標(biāo)準(zhǔn),將數(shù)字存儲為雙精度浮點數(shù)。

這種格式以 64 位存儲數(shù)字,其中數(shù)字(分數(shù))存儲在位 0 到 51 中,指數(shù)存儲在位 52 到 62 中,符號存儲在位 63 中。

 

IEEE754 雙精度標(biāo)準(zhǔn)。

我們按 IEEE754 標(biāo)準(zhǔn)用 64 位表示 0.1。
第一步是將十進制的 0.1 轉(zhuǎn)換為二進制的 0.1。
首先將 0.1 乘以 2,然后將小數(shù)點前的數(shù)字分離出來,得到其相應(yīng)的二進制數(shù)。
 

重復(fù)此操作至 64 位。
然后把它們按升序排列,獲取尾數(shù),再根據(jù)雙精度標(biāo)準(zhǔn),我們將把其四舍五入到 52 位。

尾數(shù)

用科學(xué)計數(shù)法表示二進制 0.1 并只保留前 52 位:

尾數(shù)部分處理好后。
現(xiàn)在我們用下面的方式處理指數(shù):

這里,11 代表我們要使用的 64 位表示的指數(shù)位數(shù),-4 代表科學(xué)計數(shù)中的指數(shù)。

所以最終數(shù)字 0.1 的表示形式是:

 

同理,0.2 表示為:

 

將兩個數(shù)相加,得到:

 

轉(zhuǎn)換為浮點數(shù),它變成:
 

這就是 0.1 + 0.2 = 0.30000000000000004 的原因。


當(dāng)前名稱:為什么0.1+0.2不等于0.3?原來編程語言是這么算的……
新聞來源:http://www.5511xx.com/article/ccicgje.html