将数字格式化为金钱,两位小数

时间:2016-05-04 14:02:27

标签: javascript jquery

如何将1499转为14.99?原始数字将始终列为“1999”,“2499”,“9999”等,最后2个数字为小数。最好是在jQuery中。

我所理解的唯一代码假设已经没有小数,或者想要围绕它们,类似于

var num = 10;
var result = num.toFixed(2);

19999 = 199.99美元 数字149 = 1.49美元 所以后面的两个数字是小数。想法?我已经看过应该可以使用的插件,但我不想在这个相对较小的任务中使用插件。

6 个答案:

答案 0 :(得分:4)

为了避免由于浮点问题我不信任的划分,这里有一个不使用它:



function dec(num) {
  var str = String(num);
  if (str.length < 3) return "$0."+("0"+str).slice(-2);
  return "$"+str.substring(0,str.length-2)+"."+str.slice(-2);
}

document.write('<br/>'+dec(9))
document.write('<br/>'+dec(99))
document.write('<br/>'+dec(199))
document.write('<br/>'+dec(1999))
document.write('<br/>'+dec(19999))
&#13;
&#13;
&#13;

答案 1 :(得分:4)

一旦你除以100 ......

,你的代码就能完美地运作
function convert(value) {
    return (value / 100).toFixed(2);
}

console.log(convert(1499));
console.log(convert(2499));
console.log(convert(9999));

jsfiddle示例

https://jsfiddle.net/8z15pb5c/

答案 2 :(得分:2)

function convert(num) {
    return '$' + (num / 100).toFixed(2);
}

var num1 = 2499;
var result1 = convert(num1); // $24.99

var num2 = 99;
var result2 = convert(num2); // $0.99

演示

function convert(num) {
    return '$' + (num / 100).toFixed(2);
}

var num1 = 2499;
var result1 = convert(num1);

var num2 = 190;
var result2 = convert(num2);

var num3 = 99;
var result3 = convert(num3);

document.write(result1 + '</br>');
document.write(result2 + '</br>');
document.write(result3 + '</br>');

答案 3 :(得分:2)

在致电“固定”之前,解决方法是将您的数字除以100。 样品: result =(num / 100).toFixed(2)

答案 4 :(得分:2)

function test(number){
    str = number.toString();
    var len = str.length;
    var x = '$' + str.substring(0, len-2) + "." + str.substring(len-2);    
    console.log(x);
}

答案 5 :(得分: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

这个函数也可以像这样添加为Number的原型:

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"

我会这样做,但我必须说不建议修改原语