JS函数返回十进制格式1

时间:2012-05-05 07:56:45

标签: javascript

我写了一个函数 to_money ,以便' Price' '数量'和' Total'在 sub_total 函数中格式化并附加两个零 - 所以2变为2.00,函数在这里:

 to_money: function(amount) {
      return Number(amount).toFixed(2) 
    },


sub_total: function() {
 var In = this
 return $$('.item').inject(0, function(sum, row) {
  var quantity = Number($F('Item' + row.id + 'Quantity'))
  var price = Number($F('Item' + row.id + 'Price'))
  var line_total = quantity * price
 $('Item' + row.id + 'Quantity').value = In.to_money(quantity) 
  $('Item' + row.id + 'Price').value = In.to_money(price)
  $('Item' + row.id + 'Total').update('£' + In.to_money(line_total)) In.to_money(line_total)) 
  return sum + line_total 
 })

我如何编写一个类似于功能的功能'格式化价格,而是一个格式化数量的函数,以确保默认小数为1,如果没有输入输入,则以数量为前缀。

所以函数 sub_total 中的行会调用新函数来运行数量:

 $('Item' + row.id + 'Quantity').value = In.to_decimal(quantity) 

函数看起来像这样吗?

to_decimal: function(amount) {
          return Number(amount).toFixed(0) 
        },

1 个答案:

答案 0 :(得分:3)

to_decimal: function(amount) {
          var n = Number(amount);
          return (n && n>0 ? n : 1).toFixed(2);
}
In.to_decimal('');               //=> 1.00
In.to_decimal('bogusinput');     //=> 1.00
In.to_decimal(0);                //=> 1.00
In.to_decimal('23.1');           //=> 23.10
//note: Number autotrims the parameter
In.to_decimal('          45.3'); //=> 45.30