1. 程式人生 > >JS 小數點加減乘除 精準計算

JS 小數點加減乘除 精準計算

//js 加法計算
//呼叫:accAdd(arg1,arg2)
//返回值:arg1加arg2的精確結果
function accAdd(arg1,arg2){
    var r1,r2,m;
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2))
    return ((arg1*m+arg2*m)/m).toFixed(2);
}
		
//js 減法計算
//呼叫:Subtr(arg1,arg2)
//返回值:arg1減arg2的精確結果
function Subtr(arg1,arg2){
    var r1,r2,m,n;
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2));
    //last modify by deeka
    //動態控制精度長度
    n=(r1>=r2)?r1:r2;
    return ((arg1*m-arg2*m)/m).toFixed(2);
}

//js 乘法函式
//呼叫:accMul(arg1,arg2)
//返回值:arg1乘以arg2的精確結果
function accMul(arg1,arg2){
    var m=0,s1=arg1.toString(),s2=arg2.toString();
    try{m+=s1.split(".")[1].length}catch(e){}
    try{m+=s2.split(".")[1].length}catch(e){}
    return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}

//js 除法函式
//呼叫:accDiv(arg1,arg2)
//返回值:arg1除以arg2的精確結果
function accDiv(arg1,arg2){
    var t1=0,t2=0,r1,r2;
    try{t1=arg1.toString().split(".")[1].length}catch(e){}
    try{t2=arg2.toString().split(".")[1].length}catch(e){}
    with(Math){
        r1=Number(arg1.toString().replace(".",""))
        r2=Number(arg2.toString().replace(".",""))
        return (r1/r2)*pow(10,t2-t1);
    }
}

相關推薦

JS 小數點乘除 計算

//js 加法計算 //呼叫:accAdd(arg1,arg2) //返回值:arg1加arg2的精確結果 function accAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1

JS小數點乘除運算後位數增加的解決方案

/** * 加法運算,避免資料相加小數點後產生多位數和計算精度損失。 * * @param num1加數1 | num2加數2 */ function numAdd(num1, num2) { var baseNum, baseNum1, baseNum2;

js小數乘除計算不準

Javascript精確計算時的bug  JS無法進行精確計算的bug  在做CRM,二代稽核需求稽核詳情頁面時。需要按比例(後端傳類似0.8的小數)把使用者輸入的數字顯示在不同的地方。  在做dubheInvest = invest * (1 - ratio);運算時發現問

使用棧技術實現10以內乘除算式的計算

標頭檔案: #ifndef _MYSTACK_H_ #define _MYSTACK_H_ #include <stdio.h> #define SIZE 10 struct myStack{ int arr[SIZE]; int num; }; //初始化函式

Js 運算子(乘除)

1.加法 var box=1+2 //3 var box=1+NaN //NaN,有一個為NaN就為NaN var box=Infinity+Infinity      /

JS 四則運算(乘除小數運算)避免損失精度

 /*** 加法運算,避免資料相加小數點後產生多位數和計算精度損失。** @param num1加數1 | num2加數2*/function numAdd(num1, num2) {   var baseNum, baseNum1, baseNum2;   try {       baseNum1 = n

BigDecimal 乘除

精準 rac 對象 https block 不能 商業 ply oid 解決了double和float精確度的問題 Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。雙精度浮點型變量double可以處理16位有效數

解決JS浮點數(小數)計算乘除的BUG

java 長度 誤差 spl function urn tofixed ccm catch 加法函數 /** ** 加法函數,用來得到精確的加法結果 ** 說明:javascript的加法結果會有誤差,在兩個浮點數相加的時候會比較明顯。這個函數返回較為精確的加法結果。

解決JS浮點數(小數)計算乘除的BUG-https://www.cnblogs.com/cynthia-wuqian/p/6432754.html

/****************************************解決JS浮點數(小數)計算加減乘除的BUG    Start****************************************/ /** ** 加法函式,用來得到精確的加法

js自定義乘除方法(防止js自身計算錯誤)

``` /** * 加法 * @param arg1 * @param arg2 * @returns {Number} */

Javascript優化後的乘除(解決js浮點數計算bug)

說明 眾所周知,js在計算浮點數時候,結果可能會不準確。比如:(在chrome中的運算結果) 2.2 + 2.1 = 4.300000000000001 2.2 - 1.9 = 0.30000000000000027 2.2 * 2.2 = 4.84

js實現兩個文本框數值的乘除運算

element tle utf-8 運算 tel 加減 value 加減乘除 tex <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></

JS 浮點乘除運算

動態控制 pan nbsp lac cnblogs oat 浮點 spa log //浮點數加法運算 function FloatAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString(

js乘除在線計算器代碼

ref com 加減乘 load 代碼 page body domo download js加減乘除在線計算器代碼 在線演示本地下載 js加減乘除在線計算器代碼

11.表達式計算對一串乘除帶括號進行計算

pan fin gpo ++ 字符 第一個 std 取數 main 算法流程圖: 執行截圖: 完整代碼: 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <

Js BigDecimal實現精確乘除運算的方法

func num 精確 pre fix 加減乘 結果 返回值 try 加法函數,用來得到精確的加法結果function accAdd(arg1, arg2) {var r1, r2, m, c;try {r1 = arg1.toString().split(".&

計算兩位數的乘除

題目: 輸入兩個整數,然後請輸入(1(+)或2(-)或3(*)或4(/))輸入完按“回車”鍵(中間用,隔開)結果只保留小數點後兩位 #include <stdio.h> void shu() { double a,b,c,r; char d; for(r=0;r<

JS 實現精確乘除

        最近一個專案中要使用 JS 實現自動計算的功能,本以為只是實現簡單的加、減、乘、除就可以了,於是三下五除二做完了。       正當我竊喜的時候,發現問題了。。。

js 乘除運算 進度問題 解決方案

//加法函式 function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[1].length; } catch (e) {

BigDecimal乘除計算

前陣子做題遇到了大數的精確計算,再次認識了bigdecimal 關於Bigdecimal意外的有許多小知識點和坑,這裡特此整理一下為方便以後學習,希望能幫助到其他的萌新 BigDecima的運算——加減乘除 首先是bigdecimal的初始化 這裡對比了兩種形式,第