JavaScript 運算出現多位小數的解決辦法
JavaScript小數運算出現多位的解決辦法
在開發JS過程中,會經常遇到兩個小數相運算的情況,但是運算結果卻與預期不同,除錯一下發現計算結果竟然有那麼長一串尾巴。
先看幾個例子,在Chrome控制檯測試結果如下:
產生原因:
JavaScript對小數運算會先轉成二進位制,運算完畢再轉回十進位制,過程中會有丟失,不過不是所有的小數間運算會有這個問題。
解決辦法:
一、先把需要運算的小數擴大成整數,運算後在縮小相同倍數。
例如:0.1+0.2 寫成 (0.1*10+0.2*10)/10 結果:0.3 注意:type 為 number
二、使用toFixed()
例如:var a = 0.1+0.2 寫成 a.toFixed(1) 結果:"0.3"
a.toFixed(2) 結果:"0.30"
注意:type 為 string
兩種解決方案得到的結果型別不同,第二種會強制保留n位,根據實際需要選擇。
相關推薦
JavaScript 運算出現多位小數的解決辦法
JavaScript小數運算出現多位的解決辦法 在開發JS過程中,會經常遇到兩個小數相運算的情況,但是運算結果卻與預期不同,除錯一下發現計算結果竟然有那麼長一串尾巴。 先看幾個例子,在Chrome控制檯測試結果如下: 產生原因: JavaS
Javascript計算浮點數乘積出現多位小數解決方案
Javascript在進行浮點數的乘積運算,會出現多位小數的情況。 這是由於在運算的時候先把浮點數轉化成二進位制後進行運算,但是有的小數在二進位制編碼後出現無限迴圈,因而導致計算出現了誤差,在其它變成語言中也有類似的問題。 原因解釋參考自百度知道:
js 小數運算出現13位小數解決方法
小數相乘出現很多位小數的問題;這個問題自己以前也遇到過,現在特意來總結一下;Number型別:Number型別是ECMAScript中最常用和最令人關注的型別了;這種型別使用IEEE754格式來表示整數和浮點數值(浮點數值在某些語言中也被成為雙精度數值),為支援各種資料型別,
Mysql的float型別sum出現多位不精確小數
方法一:最好的辦法是將float欄位改為decimal(16,6)。 方法二:使用binary關鍵字解決。具體操作為“select sum(binary 欄位名(float型別))”  
JavaScript中mouseover和mouseout多次觸發解決辦法
問題描述 我希望當滑鼠移動到id1上的時候,id2顯示,當滑鼠離開id1的時候,id2顯示。問題如下: 1.當滑鼠從id1上移動到id2上的時候,id由有顯示變為不顯示,然後變為顯示 2.當滑鼠從id2上移動到id1上的時候, id2有顯示變為不顯示,然後變為顯示 我希望的是當滑鼠在id1或者id2
DISTINCT選取多個欄位,只DISTINCT一個欄位的解決辦法
此文是根據原作者所著加上自己的理解總結出來的,如果有什麼問題歡迎各位提出一起交流探討。先貼出原文如下: 某前臺sql語句,簡化後如下 SELECT products_name,products_viewed FROM `products_description` O
Python浮點數(小數)運算誤差的原因和解決辦法
原因解釋:浮點數(小數)在計算機中實際是以二進位制儲存的,並不精確。比如0.1是十進位制,轉換為二進位制後就是一個無限迴圈的數:0.00011001100110011001100110011001100110011001100110011001100python是以雙精度(64bit)來儲存浮點數的,後面多餘
jpa緩存導致無法查詢到更新後的數據&android出現ANR的一個解決辦法
andro 註冊 src 上推 阻塞 img 註冊界面 性能 做了 1. 向服務器更新記錄後查詢,始終查詢不到更新後的信息 只能查到更新之前的,馬上推斷出是緩存的問題。網上搜索一番,將問題定位為jpa緩存,我們要設置jpa查詢時不從緩存中取,直接從數據庫中取,這樣便能保證查
【安裝Python環境】之“安裝 setuptools ”時出現的問題以及解決辦法
ace python環境 str ots tar oot bsp users 默認 安裝Python環境時,還需要安裝“setuptools 與 pip”,但是安裝setuptools時出現了幾個問題,如下: setuptools 與 pip 下載地址如下:https://
VMware下Ubuntu16.04的安裝、可能出現的問題的解決辦法及基本配置
ech 應用程序 內存 測試 如果 地址 高級 鏡像 ddr 安裝VMware 1.下載VMware Workstation Pro 12.1.0 for Windows,安裝。 2.VMware永久證書秘鑰:5A02H-AU243-TZJ49-GTC7K-3C61N 添加
Java float保留兩位小數或多位小數
plain ima itl highlight border 十進制 syn 兩位小數 ice 方法1:用Math.round計算,這裏返回的數字格式的. 1 2 3 4 float price=89.89; int itemNum=3; fl
上周研發中出現的問題及解決辦法
temp for 打包 mvn clean chan 人的 找到 ring 沒有 1、用RestTemplate.postForObject方法調用別人提供的POST接口的時候,無法調用。 經過仔細檢查,發現是由於我傳給別人的json格式調用參數中一個成員的數據類型和要求的
jq:mouseover和mouseout多次觸發解決辦法
mouseover ren div clas 結構 tro 需要 als ldr 區別: mouseover與mouseenter 不論鼠標指針穿過被選元素或其子元素,都會觸發 mouseover 事件。 只有在鼠標指針穿過被選元素時,才會觸發 mouseenter
使用python中出現的錯誤及解決辦法
python【問題1】在編譯安裝完Python後,不能正常使用yum,使用yum出現以下錯誤[[email protected]/* */ bin]# yum File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
乘法運算保留兩位小數
split ccm 0.12 保留兩位小數 pan catch () urn ring jq下進行乘法運算: var num=accMul(0.123,2.21);//0.27183 num=decimal(num,2);//0.27 //精確乘法運算 function
使用畫圖軟件gunplot出現的問題和解決辦法
gnuplot使用畫圖軟件gunplot出現的問題和解決辦法================================================================================================【問題一】使用gunplot畫出,將terminal設置為
js浮點數算術出現多為小數
lac catch 方法 mod 函數返回 ava 精確 一個 color /****************************************解決JS浮點數(小數)計算加減乘除的BUG Start*******************************
javascript-zero-保留2位小數
BE ntb script his ret char tostring str2 num 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset=
DELPHI調試出現disconnected session的解決辦法
nec uac 管理員權限 權限 sco inf 分享 賬戶 del 我在控制面板中,是禁用了UAC的,如下圖 但是,在註冊表中啟用了UAC(EnableLUA), 工程中請求了管理員權限,如下圖: 所以,整個權限請求混亂了。 解決辦法,要麽把註冊表的LUA設置
關於Eclipse導入項目jsp出現紅色叉的解決辦法
解決 jsp span 留言 -s 如果 是否 png strong 簡單圖解概括 右擊項目 到這裏就ok 如果沒解決就檢查下以下三個地方的版本是否一致 如果還不行,有什麽疑問可以留言,我會及時幫助解決