摘要:中沒有浮點數(shù)這種東西,但是你會發(fā)現(xiàn)這樣一個問題,如下從數(shù)學(xué)角度來看,你會覺得不可思議,這是為什么這就跟浮點數(shù)有關(guān)。
在JavaScript只有一種數(shù)值類型number,它包括整數(shù)和帶小數(shù)的十進(jìn)制數(shù)(這里的整數(shù)有點特殊,指的是沒有小數(shù)的十進(jìn)制數(shù),所以1.0等同于整數(shù)1)。
一、語法
1、js中的小數(shù),多余的零可以省略
let a = .1; // 默認(rèn)為0.1 let b = 1.; // 默認(rèn)為1 let c = 1.000; // 默認(rèn)為1
注意:小數(shù)理的的小數(shù)點.很重要哦,一定要引起重視,待會再探究。
2、toFixed()方法
42.toFixed(2); // SynataxError 語法錯誤 (42).toFixed(2); // 42.00 0.42.toFixed(2); // 0.42 42..toFixed(2); // 42.00
前面有提到小數(shù)的小數(shù)點很重要,對于.運(yùn)算符,它是一個有效的數(shù)字字符,會被優(yōu)先識別為數(shù)字常量的一部分,然后才是對象屬性訪問運(yùn)算符。所以第一條語句會被認(rèn)為是語法錯誤。
關(guān)于toFixed()方法,其實它是有誤差,減少誤差可參考 鏈接描述。
1.335.toFixed(2); // 1.33 有誤差 0.155.toFixed(2); // 0.15 有誤差 //這并不是理想狀態(tài)下的四舍五入,還跟瀏覽器有關(guān),IE瀏覽器的精度比其他瀏覽器高, //有人說toFixed()是四舍六入五成雙,至于到底是什么樣的,我也不太清楚。。。 //但是,<=4的和>=6的小數(shù)都沒有問題,最大的問題在5,這個分水嶺。
還有一種方法,Math.round()方法是四舍五入到整數(shù)的,以保留兩位小數(shù)為例,假設(shè)一個數(shù)為n,求值為(Math.round(n * 100)) / 100 (這種方式是偶然想到的,網(wǎng)上并沒有相關(guān)的例子,并不知道該方法是否存有缺陷,如有問題,歡迎指出?。?/p>
二、浮點數(shù)
剛開始接觸————浮點數(shù),是學(xué)C語言的時候,那時候的我,只是簡單以為浮點數(shù)就是多位小數(shù),而雙精度就是小數(shù)點后保留兩位小數(shù),但現(xiàn)在我不再把浮點數(shù)想得如此簡單了,里面有大學(xué)問。
js中沒有浮點數(shù)這種東西,但是你會發(fā)現(xiàn)這樣一個問題,如下:
0.1 + 0.2 === 0.3; // false 0.1 + 0.2 == 0.3; // false
從數(shù)學(xué)角度來看,你會覺得不可思議,這是為什么?這就跟浮點數(shù)有關(guān)。
這是因為計算機(jī)中存儲數(shù)據(jù)并不簡單,計算機(jī)硬件中沒有小數(shù)這個概念,而且它只能以二進(jìn)制的形式存儲數(shù)據(jù),整數(shù)還好,整數(shù)能正常的運(yùn)算,但一遇到小數(shù),就會出現(xiàn)很多無法理解的問題。
那什么是浮點數(shù)呢,到現(xiàn)在我也只能理解皮毛,根據(jù)根據(jù)國際標(biāo)準(zhǔn)IEEE 754,任意一個浮點數(shù)都可以寫成如下形式:
遇到小數(shù)運(yùn)算時,先轉(zhuǎn)化為二進(jìn)制,運(yùn)算后,再轉(zhuǎn)化成十進(jìn)制。
其中,有些小數(shù)并不是能準(zhǔn)確地化成二進(jìn)制數(shù),但是一個數(shù)值的存儲空間是有限制的,這時候就會舍棄,就存在著誤差,所以小數(shù)相加會存在誤差。
要想解決誤差問題,放大10*兩者中小數(shù)點后位數(shù)最多的位數(shù)n(可以比n大),如下
0.1 + 0.2222 // 結(jié)果為0.32220000000000004 ,有誤差 // 計算 0.1 + 0.2222 的值 0.1小數(shù)點后1位,0.2222小數(shù)點后4位,因此最少要放大10^4倍 (0.1 * 10000 + 0.2222 * 10000) / 10000 // 結(jié)果為0.3222
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101318.html
摘要:能源行業(yè)數(shù)字化轉(zhuǎn)型方向與人才培養(yǎng)大數(shù)據(jù)微軟雅黑全球能源行業(yè)數(shù)字化轉(zhuǎn)型的使命是實現(xiàn)敏捷能源。微軟雅黑油氣行業(yè)數(shù)字化轉(zhuǎn)型聚焦生產(chǎn)服務(wù)技術(shù)新業(yè)務(wù)運(yùn)營人才生態(tài)七大重點方向,結(jié)合企業(yè)發(fā)展實際,挖掘數(shù)據(jù)驅(qū)動價值增值的關(guān)鍵點,布局未來。 隨著中國能源結(jié)構(gòu)持續(xù)大幅優(yōu)化,清潔低碳化進(jìn)程不斷加快,中國市場蘊(yùn)含巨大機(jī)遇,國內(nèi)對能源行業(yè)的人才需求...
摘要:本文為喜茶喜茶互聯(lián)網(wǎng)事業(yè)部總經(jīng)理陳霈霖老師分享的數(shù)字化三支柱傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型的眾妙之門案例實錄。在我講述數(shù)字化三支柱之前,我們不妨先來看看喜茶誕生的故事。 showImg(https://segmentfault.com/img/bVblRz3?w=640&h=427); 喜茶憑借「喜茶GO」小程序躋身第七屆全球軟件案例研究峰會(簡稱:TOP100summit),為100個技術(shù)案例中...
摘要:中國數(shù)字產(chǎn)業(yè)正在迎來發(fā)展黃金期,其最大特點是信息和通信技術(shù)和數(shù)字基礎(chǔ)設(shè)施將被各行各業(yè)廣泛應(yīng)用,數(shù)字技術(shù)的創(chuàng)新將給所有產(chǎn)業(yè)帶來進(jìn)一步的繁榮,同時能夠驅(qū)動數(shù)字經(jīng)濟(jì)和實體經(jīng)濟(jì)進(jìn)一步增長。數(shù)字產(chǎn)業(yè)的繁榮是新時期經(jīng)濟(jì)發(fā)展的重要基石。習(xí)近平總書記在今年舉行的全國網(wǎng)絡(luò)安全和信息化工作會議上明確指出,要發(fā)展數(shù)字經(jīng)濟(jì),加快推動數(shù)字產(chǎn)業(yè)化,這一表述不僅引起強(qiáng)烈共鳴,也預(yù)示著中國數(shù)字產(chǎn)業(yè)發(fā)展迎來重大機(jī)遇。中國數(shù)字...
摘要:既有還手寫掛號單的落后醫(yī)院,也有已經(jīng)利用大數(shù)據(jù)技術(shù)介入診療過程的高新醫(yī)院。大數(shù)據(jù),開啟醫(yī)院智能之路醫(yī)院在前兩個階段的數(shù)字化轉(zhuǎn)型,主要強(qiáng)調(diào)數(shù)據(jù)的采集與連通。總體來看,當(dāng)前中國醫(yī)療行業(yè)的數(shù)字化轉(zhuǎn)型仍然以醫(yī)院的數(shù)字化轉(zhuǎn)型居多。近年來,人工智能、區(qū)塊鏈、大數(shù)據(jù)、云計算等新IT技術(shù)的迅速發(fā)展,不斷推進(jìn)各行各業(yè)實現(xiàn)數(shù)字化轉(zhuǎn)型。金融業(yè)、制造業(yè)、零售業(yè)……紛紛依托數(shù)字化實現(xiàn)行業(yè)變革與業(yè)務(wù)變遷。相對于其他行業(yè)...
摘要:一引言華為數(shù)字化轉(zhuǎn)型的邏輯和方法,看起來似乎并不非常復(fù)雜。華為在年提出實現(xiàn)全聯(lián)接的智能華為,成為行業(yè)標(biāo)桿的數(shù)字化轉(zhuǎn)型目標(biāo)。但是,華為的數(shù)字化轉(zhuǎn)型之道真的好學(xué)嗎其實不然。華為真正提出數(shù)字化轉(zhuǎn)型,是在年。一、引言華為數(shù)字化轉(zhuǎn)型的邏輯和方法,看起來似乎并不非常復(fù)雜。筆者將《華為.數(shù)字化轉(zhuǎn)型必修課》課程的主要內(nèi)容,概括為一個愿景、三大目標(biāo)、四個基礎(chǔ)、五大內(nèi)容、三大要求、六大案例,用下圖來表示:?一個...
閱讀 2633·2021-11-19 09:56
閱讀 886·2021-09-24 10:25
閱讀 1654·2021-09-09 09:34
閱讀 2211·2021-09-09 09:33
閱讀 1066·2019-08-30 15:54
閱讀 552·2019-08-29 18:33
閱讀 1279·2019-08-29 17:19
閱讀 517·2019-08-29 14:19