コードを使用して値の後にゼロを追加し、インターネットの助けを借りてこのコードを見つけました
$(document).ready(function() {
//var number = 258.20;
var number = 2;
var rounded = number.toFixed(2); // rounded = 258.20
document.write(rounded);
});
プロジェクトに追加しましたが、後でこのコードがセントで機能しないことがわかりました。このコードをテストケースでチェックしたところ、正しく機能していないことがわかりました。値を使用すると0.99
変換され0.00
、値を使用すると正常に45
動作しますが、変換45.00
を使用すると. 私はどこでも見つけようとしましたが、成功しませんでした。数値の場合はゼロを追加し、セントの場合はセント値で機能し、値が文字列の場合はそれでも機能する必要があります。extra cost is 0.99 cents
NaN
私は解決策を見つけました。ここにあります。
function isAlphaNumeric(str) {
var code, i, len;
for (i = 0, len = str.length; i < len; i++) {
code = str.charCodeAt(i);
if (!(code > 47 && code < 58) && // numeric (0-9)
!(code > 64 && code < 91) && // upper alpha (A-Z)
!(code > 96 && code < 123)) { // lower alpha (a-z)
return false;
}
}
return true;
};
//var testCases = "extra cost is 0.99 cents";
//var testCases = 255;
//var testCases = 0.36;
//var testCases = 25;
//var testCases = 1;
//var testCases = 1000;
//var testCases = 10000;
//var testCases = 100000;
//var testCases = 0.53789;
var testCases = 0.43789;
Number.prototype.formatMoney = function(c, d, t){
var n = this,
c = isNaN(c = Math.abs(c)) ? 2 : c,
d = d == undefined ? "." : d,
t = t == undefined ? "," : t,
s = n < 0 ? "-" : "",
i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
if(isAlphaNumeric(testCases)) {
document.write((testCases).formatMoney(2, '.', ','));
} else {
document.write(testCases);
}