在前端開發的過程中經常會遇到做一些數字處理(比如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...