Numbers
number: 十進数 0.1 は二進浮動小数点の近似値である
number へ入れた 0.1 は表示では短く見えても、内部では厳密な十進値ではありません。
SourcenumberConstruction.ts
Node.js 22
export function showPrecision(value: number): string {
return value.toFixed(20);
}TestnumberConstruction.test.ts
Node.js 22
import assert from "node:assert/strict";
import test from "node:test";
import { showPrecision } from "../../src/numbers/numberConstruction.js";
test("0point1を十進形式で十分長く表示すると近似値が見える", () => {
assert.equal(showPrecision(0.1), "0.10000000000000000555");
});01Assertion
このテストで確認できること
- 0.1 を固定小数点で表示すると近似値が見える
- 整数の最小単位なら表現を正確にできる
number は高性能な近似数値型です。十進値の保存・比較要件に使う場合は精度の境界を明示します。
OBSERVED RESULT
expected: (0.1).toFixed(20) → 0.10000000000000000555
actual: 0.10000000000000000555