我写了一个函数 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)
},
答案 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