我使用代码在我的值后添加零并从互联网上获取帮助并找到此代码
$(document).ready(function() {
//var number = 258.20;
var number = 2;
var rounded = number.toFixed(2); // rounded = 258.20
document.write(rounded);
});
并添加到我的项目中,但后来我发现这段代码不适用于美分,我用我的测试用例检查了这段代码,发现它不能正常工作。如果我使用 value0.99
它的 convert into0.00
并且当我使用 value45
它的工作正常45.00
但是当我使用extra cost is 0.99 cents
它的 convert into 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);
}