ホームページ  >  記事  >  ウェブフロントエンド  >  js の正確な計算と数値書式設定、および js ファイルへの直接参照_javascript スキルについて

js の正確な計算と数値書式設定、および js ファイルへの直接参照_javascript スキルについて

WBOY
WBOYオリジナル
2016-05-16 17:01:59897ブラウズ
コードをコピー コードは次のとおりです:

(function () {
var calc = {
/*
関数、加算関数、正確な加算結果を取得するために使用されます
注: JavaScript の加算結果にはエラーが発生します2 つの浮動小数点数を加算すると、より正確な加算結果が返されます。
パラメータ: arg1: 1 番目の加算数、d は保持される小数点以下の桁数パラメータを渡す必要はありません。渡さない場合、小数点以下の桁数は処理されません)
呼び出し: Calc.Add(arg1,arg2,d)
戻り値: 2 つの数値を加算した結果
* /
追加: function (arg1, arg2,d) {
arg1 = arg1.toString(), arg2 = arg2.toString();
var arg1Arr = arg1.split("."), arg2Arr = arg2 .split("."), d1 = arg1Arr.length == 2 ? arg1Arr[1] : "", d2 = arg2Arr.length == 2 ? arg2Arr[1] : ""; Math.max(d1.length, d2.length);
var m = Math.pow(10, maxLen);
var result = Number((arg1 * m arg2 * m).toFixed (maxLen ));
var d = argument[2];
return typeof d === "number" ? Number((result).toFixed(d)) : 結果; >/ *
関数: 正確な減算結果を取得するために使用される減算関数
説明: この関数は、より正確な減算結果を返します。
パラメータ: arg1: 1 番目の加算値、arg2 : 2 番目の加算値。保持する小数点以下の桁数 (このパラメータを渡すことはできません。渡さない場合、小数点以下の桁数は処理されません
呼び出し: Calc.Sub(arg1,arg2)
戻り値: 減算の結果2 つの数値
*/
Sub: function (arg1, arg2) {
return Calc.Add(arg1, -Number(arg2), argument[2]);
},
/ *
関数: 正確な乗算結果を取得するために使用される乗算関数
説明: この関数は、より正確な乗算結果を返します。
パラメータ: arg1: 最初の乗数; arg2: d に保持される小数点以下の桁数 (このパラメータを渡すことはできません。そうでない場合、小数点以下の桁数は処理されません)
呼び出し: Calc .Mul(arg1,arg2)
戻り値: 2 つの数値の乗算結果
*/
Mul: function (arg1, arg2) {
var r1 = arg1.toString() , r2 = arg2.toString(), m, resultVal, d = argument[2];
m = (r1.split(".")[1] ? r1.split(".")[1].長さ : 0 ) (r2.split(".")[1] ? r2.split(".")[1].length : 0);
resultVal = Number(r1.replace(".", " ")) * Number(r2.replace(".", "")) / Math.pow(10, m);
return typeof d !== "number" ? Number(resultVal) : Number(resultVal. toFixed(parseInt (d)));
},
/*
関数: 正確な除算結果を取得するために使用される除算関数
説明: この関数は、より正確な除算結果を返します。
パラメータ: arg1: 除数; arg2 被除数; d に保持される小数点以下の桁数 (このパラメータを渡すことはできません。そうでない場合、小数点以下の桁数は処理されません)
呼び出し: Calc. Div(arg1,arg2)
戻り値: arg1 を arg2 で割った結果
*/
Div: function (arg1, arg2) {
var r1 = arg1.toString(), r2 = arg2.toString(), m, resultVal, d = argument[2];
m = (r2.split(".")[1] ? r2.split(".")[1].length : 0 ) - (r1.split(" .")[1] ? r1.split(".")[1].length : 0);
resultVal = Number(r1.replace(".", "") ) / Number(r2.replace( ".", "")) * Math.pow(10, m);
return typeof d !== "number" Number(resultVal) : Number(resultVal.toFixed() parseInt(d)));
},
/*
値を四捨五入してフォーマットします。
@param num value (数値または文字列)
@param cent 小数点以下の桁数を保持します。 (数値)
@param isThousand 1000分の1が必要かどうか 0: 不要、1: 必須 (数値型)
@return '1,234,567.45' などの形式文字列
@type String
Call: Calc.FormatNumber(num, cent,isThousand)
*/
FormatNumber: function formatNumber(num,cent,isThousand){
num = num.toString().replace(/$|,/g, '');
if(isNaN(num))//受信値が数値型であることを確認します。
if(isNaN(cent))//入力される小数点以下の桁数は数値です。
cent = parseInt(cent);
cent = Math.abs(cent);//小数点以下の桁数を見つけて、それが数値であることを確認します。正の整数。
if(isNaN(isThousand) )//渡された 1000 の位が数値型であるかどうかを確認します。
isThousand = parseInt(isThousand); (isThousand < 0)
isThousand = 0;
if(isThousand >=1) // 渡される値が 0 または 1 のみであることを確認します
isThousand = 1; num == (num = Math.abs(num))); //符号 (正/負の数値) を取得します
//Math.floor: 数値パラメータ以下の最大の整数を返します
num = Math.floor(num*Math.pow(10,cent) 0.50000000001);/ /まず、指定された小数点以下の桁を整数に変換します。
cents = num%Math.pow(10, cent); //小数点以下の値を検索します。
num = Math.floor(num/Math.pow(10,cent)).toString();//整数の桁の値を検索します。 = cents.toString();//10 進数を文字列に変換して、10 進数の長さを調べます。
while(cents.lengthcents = "0" cents;
}
if(isThousand == 0) // 1000 位の文字は必要ありません。
return (((sign)?'':'-') num '.' cents);
//1000 の位の整数部分をフォーマットします。
for (var i = 0; i num = num.substring(0,num.length-(4*i 3) ) ','
num.length-(4*i 3); >return (((sign)?'':'-') num '.' セント);
window.Calc =
}(); >
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。