JavaScript Cのsprintf()的 文字列整形 まとめ
1️⃣ テンプレートリテラル ${}
- 標準的で最も簡単
- 式を直接埋め込める
const name = "太郎"; const age = 25;
console.log( `名前: ${name}, 年齢: ${age}` ); // 名前: 太郎, 年齢: 25
- 式内で計算も可能
console.log( `2+3=${2+3}` ); // 2+3=5
2️⃣ 実数の小数点桁数指定
- toFixed(n) で小数点 n 桁まで丸め、文字列化
const pi = 3.14159265;
console.log( `${pi.toFixed(2)}` ); // 3.14
console.log( `${pi.toFixed(4)}` ); // 3.1416
- 数値として再利用する場合は parseFloat() で変換
const rounded = parseFloat( pi.toFixed(2) ); // 3.14 数値
3️⃣ 桁揃え(幅をそろえる)
- padStart() / padEnd() で幅指定
const val = 3.14159;
console.log(val.toFixed(2).padStart(6, " ")); // " 3.14"
console.log(val.toFixed(2).padEnd(6, " ")); // "3.14 "
- C言語の %6.2f 的に表現可能
4️⃣ 外部ライブラリ sprintf-js
- C風の書式 %s, %d, %.2f が使える
- インストール:
npm install sprintf-js
- 使い方:
const sprintf = require("sprintf-js").sprintf;
const str = sprintf("名前: %s, 年齢: %d, 小数: %.2f", "太郎", 25, 3.14159);
console.log(str); // 名前: 太郎, 年齢: 25, 小数: 3.14
|
書式 |
意味 |
|
%s |
文字列 |
|
%d |
整数 |
|
%f |
小数 |
|
%.2f |
小数点以下2桁 |
- 幅も指定可能:
sprintf("%6.2f", 3.14159); // " 3.14"
5️⃣ 標準だけで sprintf 風関数を作る
簡易版の例:
function sprintf(fmt, ...args) {
let i = 0;
return fmt.replace(/%([sd]|\.?\d+f)/g, match => {
const arg = args[i++];
if (match.endsWith("f")) {
const n = parseInt(match.match(/\d+/)?.[0] ?? 0);
return parseFloat(arg).toFixed(n);
}
if (match === "%d") return parseInt(arg);
return arg;
});
}
console.log(sprintf("x=%.2f, y=%d, name=%s", 3.14159, 42, "太郎"));
// x=3.14, y=42, name=太郎
- %s → 文字列
- %d → 整数
- %.2f → 小数点指定
- 簡単にC風出力が可能
6️⃣ 実用Tips
- 小規模なら テンプレートリテラル + toFixed() + padStart() が軽量
- 複雑なレポート出力や幅指定が多い場合は sprintf-js か自作関数
- JavaScriptには 組み込みの printf/sprintf はないことを覚えておく
🧓 コンピューターおばあちゃんのまとめ
- ${} で文字列を直感的に組み立てる
- 数値桁は toFixed()
- 幅指定は padStart / padEnd
- C風にしたい場合は sprintf-js か自作関数
「覚えておくのは簡単な公式だけじゃ。
応用はライブラリに任せるのが賢いのう 🌙」
※ ChatGPTと作りました.

