2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

数値リテラルの視認性を高める:`1_000_000` と書いて `1000000` を得る

Last updated at Posted at 2025-03-30

概要

コードを読む際、大きな数値リテラルは読み間違いやすく、バグの温床になる。
たとえば 100000086400000 のようなリテラルは、ぱっと見て意味が分かりにくい

このような場面において、視認性を飛躍的に高めるテクニックが、アンダースコアによる区切りだ。


対象環境

言語: JavaScript / TypeScript / Python / Kotlin / Swift ほか多数  

問題提起

次のようなコードを見たとき、直感的に値を理解できるだろうか?

const TIMEOUT = 86400000; // ← これ何時間?

解決手段

アンダースコアで区切ると、圧倒的に可読性が上がる。

const TIMEOUT = 86_400_000; // ← 24時間(ミリ秒)
MAX_LIMIT = 1_000_000  # ← 100万

解説

JavaScript / TypeScript

ES2021からサポート。アンダースコアは無視されるため、実行時には数値そのものとして扱われる

console.log(1_000_000 === 1000000); // true

Python

Python 3.6 以降で正式サポート。

print(1_000_000 == 1000000)  # True

Swift / Kotlin など

これらの言語でも同様に使用可能。数値リテラルを視覚的に整理する文化が根付いている。


応用:時間や容量の定義に使う

const ONE_MINUTE = 60_000;        // ミリ秒
const ONE_HOUR   = 3_600_000;     // ミリ秒
const ONE_GB     = 1_073_741_824; // バイト (1024^3)
ONE_KB = 1_024
ONE_MB = 1_048_576  # 1024 * 1024

結語

可読性は、コードの信頼性に直結する。
特に定数やハードコーディングが避けられない場面では、数字の見た目が理解度を左右する。

アンダースコア区切りは、誰もが一瞬で取り入れられるテクニックでありながら、
プロフェッショナルなコードに不可欠な要素だ。

「1_000_000」は「1000000」と等しい。
だが、伝わり方はまったく違う。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?