eslint/no-loss-of-precision 正しさ
何をしますか
数値リテラルの精度損失を許可しない。
なぜ悪いですか
特定の状況で予期しない結果につながる可能性があります。 たとえば、数学的な演算を行う場合です。
JavaScriptでは、数値はIEEE 754仕様に従って倍精度浮動小数点数として格納されます。このため、数値は特定の桁数までしか正確に保持できません。プログラマーが追加の桁を入力した場合、その桁は数値型への変換時に失われてしまい、予期しない/誤った動作を引き起こす原因になります。
例
このルールに対して不適切なコードの例:
javascript
var x = 2e999;javascript
var x = 9007199254740993;javascript
var x = 5123000000000000000000000000001;javascript
var x = 1230000000000000000000000.0;javascript
var x = 0x200000_0000000_1;このルールに対して適切なコードの例:
javascript
var x = 12345;javascript
var x = 123.456;javascript
var x = 123.0;javascript
var x = 123e34;javascript
var x = 0x1fff_ffff_fff_fff;使用方法
設定ファイルまたはCLIを使ってこのルールを有効化するには、以下のいずれかを使用できます:
json
{
"rules": {
"no-loss-of-precision": "error"
}
}bash
oxlint --deny no-loss-of-precision