jquery中浮點數運算結果保留兩位小數的方法
今天在偶然用到了一個簡單的運算,38.6-38.2,結果竟然是0.3999999999999986,一般來說肯定是0.4。
通過查詢,瞭解到,計算機內部的二進位制是無法精確表達0.1,0.2之類的數字的。
原理:
像簡單的0.1
用十進位制表示:1×10^-1 ,也就是0.1
而用二進位制表示:0×2^-1+0×2^-2+0×2^-3+1×2^−4+1×2^−5……
也就是:0.0001 1001 1001 1001…基本就是個無限迴圈小數
但是當結果為可用二進位制精確表示的小數,例如0.5
由於0.5可用二進位制0.1表示,所以不會產生丟失精度的問題,看起來也是正常的
解決方法:
在程式碼中加入如下方法
//保留兩位小數 function intToFloat(val){ return new Number(val).toFixed(2); }
在每個返回值為浮點數的地方呼叫該函式即可,toFixed作用是四捨五入,引數保留n位小數
intToFloat(float1-float2);
相關推薦
jquery中浮點數運算結果保留兩位小數的方法
今天在偶然用到了一個簡單的運算,38.6-38.2,結果竟然是0.3999999999999986,一般來說肯定是0.4。 通過查詢,瞭解到,計算機內部的二進位制是無法精確表達0.1,0.2之類的數字的。 原理: 像簡單的0.1 用十進位制表示:1×10^-1 ,也就是0.1 而用二進位制表
jQuery向界面輸出時保留兩位小數
value taglib 界面 query dig ref java AC 通過 通過JSTL下的<fmt:formatNumber>標簽實現,具體實現代碼如下: <%@ taglib uri="http://java.sun.com/jsp/jstl/
Java輸出結果保留兩位小數
今天在做 PAT007-六度空間 ,輸出結果需要保留兩位小數,所以在網上找了相關資料。 一共有四種方法,程式碼如下: import java.math.BigDecimal; import java
2、編寫程式,從鍵盤上輸入兩個電阻的值,求它們並聯和串連的電阻值,輸出結果保留兩位小數。
#include <stdio.h> int main() { float R1,R2,Rc,Rb; printf("please input R1 R2\n");
java 除法結果保留兩位小數,小數保留前導零
DecimalFormat df1 = new DecimalFormat(“0.0″); //保留1位小數,帶前導零 DecimalFormat df2 = new DecimalFormat(“#.#”); //保留1位小數,可以不帶前導零 DecimalForma
js保留兩位小數方法總結
var tostring angular float fixed pre 文本框 用戶輸入 希望 js保留兩位小數方法總結 最近在做結算系統,經常需要用到金額保留兩位小數,剛開始我一直用的是Angular中的過濾器number |2,但是,這無法滿足我的需求。問題是,當
oracle:sql保留兩位小數方法
1.select cast(362315*1.0/10000 as numeric(18,2)) 2.select convert(decimal(18, 2), 362315 * 1.0 / 10000) 3.ROUND(count(aa) / count(t.bb),
Oracle資料庫中查詢結果集中保留兩位小數的問題
工作中遇到的Oracle資料庫欄位格式化問題,在此記錄 保留兩位小數主要分為兩種情況: 1.數字保留兩位小數;(小數點左側數字可能比較大,比如1234567890.12) 2.百分比保留兩位小數;(小數點左側數字數字小於等於100,比如98.76%) 現針對O
將運算結果僅保留兩位小數
假如在一次運算中,要求得到的結果保留兩位小數,而實際運算的結果不是兩位小數,那麼; 用一下三種方法之一均可將結果保留成兩位小數: 假設num為及運算結果(非兩位小數) 1.String.forma
總結群裡討論的關於浮點數,如何四捨五入保留兩位小數的處理方式
ceil(n*100.0)/100.0 複雜些的可以用這個NSDecimalNumber round(n*100.0)/100.0 說明:round只針對整數有效,就是說只會對整數部分四捨五入 + (NSString *)stringWithFloat:(doub
乘法運算保留兩位小數
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
【java】java處理隨機浮點數(小數點後兩位)用RMB的大寫數值規則輸出
pen junit toc get code package 部分 amp print 晚上上床前,拿到這個有意思的問題,就想玩弄一番: ====================================================================
Oracle中保留兩位小數
在最近的專案開發中,有個業務需求是介面顯示的數字需要保留兩位小數,目前我想到的解決方法有兩種: (1)在寫SQL的時候,直接保留兩位小數 (2)在java程式碼裡面將查詢出來的數進行格式化處理,保留兩位小數 先說第一種方案:在SQL中的處理 我使用的oracle資料庫,所以有3個函式可以選擇,分別是: (1)
python中保留兩位小數之反彈高度
【問題描述】 已知一球從高空落下時,每次落地後反彈至原高度的四分之一再落下。編寫一程式,從鍵盤輸入整數n和m, 求該球從n米的高空落下後,第m次落地時共經過的路程以及第m次落地後反彈的高度,並輸出結果。 【輸入形式】 從鍵盤輸入整數n和m,以空格隔開。 【輸出形式】 輸出兩
sql sql計算除法保留兩位小數sql中分母為零處理
1 select d.name, case when SUM(a.grid_capacity)=0 then 0 else ROUND(SUM(c.year_power)/SUM(a.grid_capacity), 2) end as 'hours',
Python中的除法保留兩位小數
在C/C++語言對於整形數執行除法會進行地板除(捨去小數部分)。例如 int a=15/10; a的結果為1。 同樣的在Java中也是如此,所以兩個int型的資料相除需要返回一個浮點型資料的時候就需要強制型別轉換,例如 float a = (float)b/c
Java中使用DecimalFormat保留兩位小數,同時不保留0
import java.text.DecimalFormat; /** * Created by laozhu on 2018/4/10. */ public class Helo {
【js】js中保留兩位小數的方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <h1>JS中保留兩位小數方法</h1><
Java中對double型別保留兩位小數的方法
整理了網上一些方法,方便以後查閱。 1.使用BigDecimal類 BigDecimal b1 = new BigDecimal(width); BigDecimal b2 = new BigDecimal(height); BigDecimal b3 = b1.mul
Java中double型別保留兩位小數
java中對double型別的小數經常會有小數點後邊保留一位小數或者保留兩位小數的需求。 javaAPi中提供了一個專門的類BigDecimal,用來對超過16位有效位的數進行精確的運算。 使用步驟: