jsの丸め

百草
百草オリジナル
2023-07-04 10:07:0319003ブラウズ

JS の丸めメソッド: 1. tofixed メソッド (指定された小数点以下の桁数で Number を四捨五入できるメソッド)、2.round() メソッド (数値を最も近い整数に四捨五入できるメソッド)。

jsの丸め

1. tofixed メソッド

toFixed() メソッドは、Number を指定された小数点以下の桁数に丸めることができます。たとえば、データ Num を小数点以下 2 桁に保つ場合、toFixed(Num) と表現されますが、四捨五入のルールが数学とは異なり、バンカーの四捨五入ルールが使用されます。銀行家の四捨五入法、その本質は、5 に四捨五入して均等にする方法 (5 に四捨五入し、均等にすることとも呼ばれます) です。具体的なルールは次のとおりです:

簡単に言うと、5 に切り上げることを検討してください。5 の後の数が 0 でない場合は 1 を加えます。5 の後の数が 0 の場合は、奇数か偶数を調べます。 5 つ前の数が偶数の場合は破棄し、5 つ前の数が奇数の場合は破棄します。

明らかに、このルールは私たちが通常データを扱う方法に準拠していません。この問題を解決するには、Math.round メソッドを使用して実装をカスタマイズし、処理のために保持するデータのビット数を指定します。

2、round メソッド

round() メソッドは、数値を最も近い整数に丸めることができます。例: Math.round(x) は、x を最も近い整数に変換します。四捨五入の方法には、数学の四捨五入の規則に従った四捨五入法が使用されます。小数の処理はそれほど便利ではありませんが、さまざまな要件に応じてカスタマイズできます。

例: 小数点以下 2 桁の X を処理するには、Math.round(X * 100) / 100 を使用して処理できます。

その他の内容:

JavaScript では、値を四捨五入するシナリオは次のとおりです:

切り上げ: ceil 切り捨て: Floor 四捨五入: 固定精度の丸め: toFixed固定長: toPrecision 丸め: parseInt、ビット演算

この記事では、これら 6 つの API について簡単に説明し、まとめます。

1. 切り上げ: ceil

ceil は「天井」を意味し、値を超え、その数値に最も近い整数を意味します。 ceil は Math オブジェクトの静的メソッドであり、パラメータを渡す必要があります。その呼び出しメソッドは次のとおりです:

Math.ceil(12.34); //13Math.ceil(12.68); //13

2. 切り捨て: フロア

フロアは「フロア」を意味し、値の下にある最も近い整数を意味します。 Floor は Math オブジェクトの静的メソッドであり、パラメーターを渡す必要があります。呼び出しメソッドは次のとおりです:

Math.floor(12.34); // 12Math.floor(12.68); // 12

3. 丸め:round

round の機能は、浮動小数点数を丸め、整数の桁を保持することです。 Round も Math オブジェクトの静的メソッドであり、パラメーターを渡す必要があります。その呼び出しメソッドは次のとおりです:

Math.round(12.34); // 12Math.round(12.54); // 13

4. 固定精度: toFixed

toFixed は上記の 3 つのメソッドとは異なり、Number プロトタイプに実装されたメソッドであり、その機能は浮動小数点数を四捨五入することです。固定小数点以下の桁数を保持します。 toFixed はパラメータを渡す必要があり、その呼び出しメソッドは次のとおりです:

100.456001.toFixed(2); // 100.46100.456001.toFixed(3); // 100.456

# #5、固定長: toPrecision

toPrecison も、浮動小数点数を処理するために Number プロトタイプに実装されたメソッドです。toFixed との違いは、浮動小数点数を丸め、有効桁数の固定長を保持することです。整数部分を含む数字。

99.456001.toPrecision(5); // 99.456100.456001.toPrecision(5); // 100.46


6. 丸め: parseInt

parseInt はい Aグローバル オブジェクト ウィンドウのメソッドでは、その機能は変換可能な値を丸めることであり、これは次の 2 つの状況に分けられます:

1. 文字列値を Number 整数に変換し、文字列内の各値を丸めます。変換できない文字 (小数点を含む) が見つかるまで変換されます。

2. 浮動小数点型の値を四捨五入し、小数部分を無視し、四捨五入しません

// 文字列値 parseInt('100'); // 100parseInt('100axt') ; / / 100parseInt('100xh20'); // 100parseInt('100.78'); // 123// 数値型 parseInt(100.12); // 100parseInt(100.78); // 100


7.丸め: ビット演算

| 0: 0 とビット単位の OR 演算を実行し、元の値は変更されません~~: 2 つのビット単位の NOT 演算で得られた元の値も元の値です>> 0: 右シフト0 ビット<< 0: 左シフト 0 ビット>>> 0: 符号なし右シフト 0 ビット

これらのビット演算子は、丸め演算を実装するときにいくつかの共通の特性を示します。:

For Number 型の場合は直接ビット演算を適用すると parseInt とほぼ同じ結果になりますが、それ以外の型の場合は Number() を通じて内部で数値に変換してからビット演算を適用します。特殊な NaN 値と Infinity 値にビット演算を適用すると、両方の値が 0 として扱われます。

Number 型の場合、ビット演算が直接適用されます。

~~ 100.12; // 100100.78 | 0; // 100100.45 >> 0; // 100100.50 << 0; // 100100.96 >>> 0; // 100


その他の型の場合は、まず Number() を使用して数値型に変換し、次にビット演算を実行します。

~~ '100.12' // 100, Number('100.12') == 100.12'100.50' >> 0; // 100, Number('100.50') == 100.50'100.96' < ;

ビット操作は最も基本的なレベルで動作します。つまり、値を表すメモリ内のビットに基づいて値を操作します。

ビット演算を丸めることができる理由は次のとおりです。

ECMAScript の値は 64 ビットの倍精度浮動小数点数として格納されますが、ビット演算は整数にのみ適用できます。 , そのため、最初に 64 ビット浮動小数点数を変換する必要があります。小数点数は 32 ビット整数に変換され、次にビット演算が実行され、最後に計算結果が 64 ビット浮動小数点数に変換されて保存されます。 。

以上がjsの丸めの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。