[解決済み] 1桁の数字に0を付加して書式設定する方法は?
2022-03-26 02:37:47
質問
数字が2桁になるように書式設定したい。問題は、以下の場合に発生します。
0
-
9
が渡されるので、それを整形して
00
-
09
.
JavaScriptで数値のフォーマッタはありますか?
どのように解決するのですか?
編集(2021年)。
もうこのように手作業で数字を整形する必要はない。 この回答は、IE が重要で、バベルやバンドルが素晴らしい夢であった 2011 年の遠い昔に書かれたものです。
この回答を削除するのは間違いだと思いますが、もしあなたがこのページにたどり着いたのなら、親切にも この質問に対する二番目に高い投票による回答 この編集の時点では
の使い方を紹介してくれます。
.toLocaleString()
のオプション・パラメータで
{minimumIntegerDigits: 2}
. エキサイティングなことです。 以下に、この方法を用いて、私のオリジナルの回答から3つの例をすべて再現しましたので、参考にしてください。
[7, 7.5, -7.2345].forEach(myNumber => {
let formattedNumber = myNumber.toLocaleString('en-US', {
minimumIntegerDigits: 2,
useGrouping: false
})
console.log(
'Input: ' + myNumber + '\n' +
'Output: ' + formattedNumber
)
})
オリジナルの回答です。
私が見つけた最良の方法は、次のようなものです。
<サブ (この単純なバージョンは正の整数のみで動作することに注意)
var myNumber = 7;
var formattedNumber = ("0" + myNumber).slice(-2);
console.log(formattedNumber);
小数の場合は、次のようなコードになります(ちょっとずさんですが)。
var myNumber = 7.5;
var dec = myNumber - Math.floor(myNumber);
myNumber = myNumber - dec;
var formattedNumber = ("0" + myNumber).slice(-2) + dec.toString().substr(1);
console.log(formattedNumber);
最後に、負の数の可能性に対処しなければならない場合、符号を保存し、数値の絶対値に書式を適用し、事後的に符号を再適用するのが最善です。 なお、この方法では、数値は合計2桁に制限されない。 その代わり、小数点の左側(整数部)のみを制限しています。(符号を決定する行が見つかりました。 こちら ).
var myNumber = -7.2345;
var sign = myNumber?myNumber<0?-1:1:0;
myNumber = myNumber * sign + ''; // poor man's absolute value
var dec = myNumber.match(/\.\d+$/);
var int = myNumber.match(/^[^\.]+/);
var formattedNumber = (sign < 0 ? '-' : '') + ("0" + int).slice(-2) + (dec !== null ? dec : '');
console.log(formattedNumber);
関連
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] GUID / UUIDの作成方法
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] ループ内のJavaScriptクロージャ - シンプルな実用例
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] 数字を通貨文字列としてフォーマットする方法
-
[解決済み] JavaScriptのオブジェクトを表示するにはどうすればよいですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
vueが定義するプライベートフィルタと基本的な使い方
-
Vueのフィルタの説明
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
[解決済み] JavaScriptで小数点以下が2つだけの数値を書式設定する