Javascript 将数字格式化为货币,两位小数
我该怎么转,比如说1499,到14.99?原始数字将始终列为“1999”、“2499”、“9999”等,最后两个数字为小数。最好使用jQuery 我所理解的唯一代码假设已经没有小数,或者想要对它们进行四舍五入,类似于Javascript 将数字格式化为货币,两位小数,javascript,jquery,Javascript,Jquery,我该怎么转,比如说1499,到14.99?原始数字将始终列为“1999”、“2499”、“9999”等,最后两个数字为小数。最好使用jQuery 我所理解的唯一代码假设已经没有小数,或者想要对它们进行四舍五入,类似于 var num = 10; var result = num.toFixed(2); 数字19999=199.99美元 数字149=1.49美元 所以后面的两个数字是小数。思想?我见过应该可以工作的插件,但我更愿意不必为这个相对较小的任务使用插件 为了避免由于浮点问题而导致我不信
var num = 10;
var result = num.toFixed(2);
数字19999=199.99美元
数字149=1.49美元
所以后面的两个数字是小数。思想?我见过应该可以工作的插件,但我更愿意不必为这个相对较小的任务使用插件 为了避免由于浮点问题而导致我不信任的除法,这里有一个不使用它的除法:
函数dec(num){
var str=字符串(num);
if(str.length<3)返回“$0.”+(“0”+str.slice(-2);
返回“$”+str.substring(0,str.length-2)+“+”+str.slice(-2);
}
文件编写(“
”+dec(9))
文件写入(“
”+dec(99))
文件写入(“
”+dec(199))
文件编写(“
”+dec(1999))
document.write(“
”+dec(19999))
为了避免由于浮点问题而导致我不信任的除法,这里有一个不使用它的除法:
函数dec(num){
var str=字符串(num);
if(str.length<3)返回“$0.”+(“0”+str.slice(-2);
返回“$”+str.substring(0,str.length-2)+“+”+str.slice(-2);
}
文件编写(“
”+dec(9))
文件写入(“
”+dec(99))
文件写入(“
”+dec(199))
文件编写(“
”+dec(1999))
写(“
”+dec(19999))
一旦你除以100,你的代码就可以完美地工作了
function convert(value) {
return (value / 100).toFixed(2);
}
console.log(convert(1499));
console.log(convert(2499));
console.log(convert(9999));
jsfiddle示例
一旦除以100,您的代码就可以完美地工作
function convert(value) {
return (value / 100).toFixed(2);
}
console.log(convert(1499));
console.log(convert(2499));
console.log(convert(9999));
jsfiddle示例
演示
函数转换(num){
返回“$”+(num/100).toFixed(2);
}
var num1=2499;
var result1=转换(num1);
var num2=190;
var result2=换算(num2);
var num3=99;
var result3=换算(num3);
document.write(result1+“”);
document.write(result2+“”);
document.write(result3+“”)代码>
演示
函数转换(num){
返回“$”+(num/100).toFixed(2);
}
var num1=2499;
var result1=转换(num1);
var num2=190;
var result2=换算(num2);
var num3=99;
var result3=换算(num3);
document.write(result1+“”);
document.write(result2+“”);
document.write(result3+“”)代码>解决方法是在调用Fixed之前将您的号码除以100。
样本:
结果=(num/100)。toFixed(2)在调用toFixed之前,解决方法是将您的数字除以100。
样本:
result=(num/100).toFixed(2)我认为一个很好的方法是循环一个从数字中获得的字符串,然后在应该添加的时候添加一个点或任何东西
function toCurrency(n) {
var value = n.toString();
var output = '$';
for (var i = 0; i < value.length; ++i) {
if (i === value.length - 2) output += '.';
output += value[i];
}
return output;
}
console.log(toCurrency(2499)); // $24.99
函数到电流(n){
var值=n.toString();
变量输出=“$”;
对于(变量i=0;i
此函数也可以添加为数字的原型,如下所示:
Number.prototype.toCurrency = function() {
var value = this.toString();
var output = '$';
for (var i = 0; i < value.length; ++i) {
if (i === value.length - 2) output += '.';
output += value[i];
}
return output;
}
var price = 12200;
price.toCurrency(); // "$122.00"
Number.prototype.toCurrency=function(){
var value=this.toString();
变量输出=“$”;
对于(变量i=0;i
我会这样做,但我必须说,不建议修改原语我认为这样做的一个好方法是在从数字中获得的字符串中循环,并在应该添加的时候添加一个点或任何东西
function toCurrency(n) {
var value = n.toString();
var output = '$';
for (var i = 0; i < value.length; ++i) {
if (i === value.length - 2) output += '.';
output += value[i];
}
return output;
}
console.log(toCurrency(2499)); // $24.99
函数到电流(n){
var值=n.toString();
变量输出=“$”;
对于(变量i=0;i
此函数也可以添加为数字的原型,如下所示:
Number.prototype.toCurrency = function() {
var value = this.toString();
var output = '$';
for (var i = 0; i < value.length; ++i) {
if (i === value.length - 2) output += '.';
output += value[i];
}
return output;
}
var price = 12200;
price.toCurrency(); // "$122.00"
Number.prototype.toCurrency=function(){
var value=this.toString();
变量输出=“$”;
对于(变量i=0;i
我会这样做,但我必须说,不建议修改原语您能分享更多的测试用例吗?或者,用逗号分隔最后两位数字是您要查找的唯一测试用例?看看如何将数字更改为字符串,并将最后两位数字替换为“.xx”?OP不想将1499变为1499.00,请重新阅读文章。您可以共享更多测试用例吗?或者,用逗号分隔最后两位数字是您正在寻找的唯一测试用例?看看如何将数字更改为字符串,并将最后两位数字替换为“.xx”?OP不想将1499变为1499.00,请重新阅读该帖子。这很好。我开始写我自己的函数,你更快了。但是我们可以这样说,num.length<3
更新为处理<3删除的我的,因为你的更好、更短。另外,我认为这是最好的答案,因为它涵盖了浮点问题。对于56.2k,你应该习惯它。曾经有一段时间,总有人对我的答案投反对票。来自我+1。谢谢你们。这只是原则。我很想知道为什么有人觉得有必要否决投票。这太好了。我开始写我自己的函数,你更快了。但是我们可以这样说,num.length<3
更新为处理<3删除的我的,因为你的更好、更短。另外,我认为这是最好的答案,因为它涵盖了浮点问题。对于56.2k,你应该习惯它。曾经有一段时间,总有人对我的答案投反对票。来自我+1。谢谢你们。这只是原则。我很想知道为什么有人认为有必要否决投票,特别是什么问题?事实上,我会以t为底