いままでは、小数点以下を、例えば2桁に揃えたいときは、
((num * 100) | 0) / 100;
という感じで、
➊ 必要な桁数分小数点をずらす
➋ 0ビットシフトで小数点以下をカット
➌ ずらした小数点を戻す
という処理をしていたのですが、他人が見たときに全然直感的でないので、
これからは、Number.prototype.toFixedを使って、
Number(num.toFixed(2));
と書こうと思いました。
👆
引越し先はこちらです!
いままでは、小数点以下を、例えば2桁に揃えたいときは、
((num * 100) | 0) / 100;
という感じで、
➊ 必要な桁数分小数点をずらす
➋ 0ビットシフトで小数点以下をカット
➌ ずらした小数点を戻す
という処理をしていたのですが、他人が見たときに全然直感的でないので、
これからは、Number.prototype.toFixedを使って、
Number(num.toFixed(2));
と書こうと思いました。
昔は、
let mm = ('0' + m).slice(-2);
のような感じでゼロパディングしていたのですが、
let mm = String(m).padStart(2, 0);
と、IEを無視すれば String.prototype.padStart() がつかえるよと教えて頂きました。
// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart if (!String.prototype.padStart) { String.prototype.padStart = function padStart(targetLength,padString) { targetLength = targetLength>>0; //truncate if number or convert non-number to 0; padString = String((typeof padString !== 'undefined' ? padString : ' ')); if (this.length > targetLength) { return String(this); } else { targetLength = targetLength-this.length; if (targetLength > padString.length) { padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed } return padString.slice(0,targetLength) + String(this); } }; }
polyfillを書いておけば、より安心です。
(new Date()).toLocaleDateString("ja-JP-u-ca-japanese"); // → "30/9/10"
JavaScriptで和暦を出力できることを知りました。
試しに1年後の和暦を出力してみた所、
(new Date(Date.now() + 1000 * 60 * 60 * 24 * 365)).toLocaleDateString("ja-JP-u-ca-japanese"); // → "31/9/10"
現時点では新元号には対応できていませんでした。