JS數字處理

2021-10-14 19:06:52 字數 1775 閱讀 1360

在前端開發的過程中經常會遇到做一些數字處理(比如js精度問題等等),以下是我的一些總結。

有一些資料金額比較大,需要每隔三個數字打乙個逗號。

**如下:

/**

* 處理數字:打逗號

* @param str

*/export const handalnumber =

(str)

=>

)/g,

'$1,').

replace(/

,$/,'')

.split(''

).reverse()

.join(''

);};

使用:

let num =

handalnumber

(string

(542549007))

console.

log(num)

// 542,549,007

js沒有內建處理精度問題的方法,所以需要我們自己處理。我們可以使用(a*10^n - b *10^n)/ 10^n 這樣來處理。

如下所示:

let num =(1

-0.9

)console.

log(num)

// 0.09999999999999998

let num1 =(1

*10-0.9*10

)/10console.

log(num1)

// 0.1

由此,我們可以封裝乙個方法

如下所示:

/**

* 處理小數點的加減

* @param arg1 引數1

* @param arg2 引數2

* @param isadd 是否為加法

* @param ratio 擴大的比例

*/export const pointoperation =

(arg1, arg2, isadd = true, ratio =1)

=>

catch (e)

try catch (e)

// math.pow() 函式返回基數(base)的指數(exponent)次冪,即 base^exponent

const m = math.

pow(

10, math.

max(r1, r2));

const n = r1 >= r2 ? r1 : r2;

return isadd

?((arg1 * m + arg2 * m)

/ m)

* ratio

:((arg1 * m - arg2 * m)

/ m)

.tofixed

(n)* ratio;

};

使用示例:

// 計算 1-0.9

let num =

pointoperation(1

,0.9

, false)

console.

log(num)

// 0.1

// 計算 1+0.9 將計算結果擴大100倍

let num1 =

pointoperation(1

,0.9

, true,

100)

console.

log(num1)

// 190

XDOJ 數字處理

標題 數字處理 類別函式與遞迴 時間限制 2s記憶體限制 1000kb 問題描述 編寫乙個程式,從鍵盤輸入乙個非零整數n 0 n 1000000000 對整數n進行如下處理 將整數的各位數字取出來相加,如果結果是一位數則輸出該數,否則重複上述過程,直到得到的結果為一位數,並輸出該結果。例如 n 45...

PHP數字處理

援引自博文 ceil 進一法取整 float ceil float value 返回不小於 value 的下乙個整數,value 如果有小數部分則進一位。ceil 返回的型別仍然是 float,因為 float 值的範圍通常比 integer 要大。eg.php echo ceil 2.3 3 ec...

一些JS數字處理技巧

1.變數轉換 var myvar 3.14159 var myothervar 3.14159haha str myvar 轉成字串 int myvar 轉為數字型別,下取整 3 int myothervar 結果為0 float myvar 轉為數字型別,結果為原資料 int myothervar...