将每个文本框四舍五入到小数点后2位
Round every textbox to 2 decimal places
这可能真的很简单,但是我怎么也想不出怎么做。我有一个包含许多文本框的大表单,这些文本框都是基于货币的,所以需要四舍五入到小数点后2位。这些文本框的值都是由我编写的一些JavaScript函数动态生成的,我可以使用.toFixed(2);
将它们四舍五入到小数点后2位。但是,在计算出每个文本框的每个值之后,必须输入这些内容,这变得很累人且重复。我怎么能写一个简单的JavaScript(可以是jQuery)的目标所有的文本框和四舍五入到小数点后2位?
谢谢你的帮助:)
p。很抱歉没有任何代码,但实际上没有任何代码可以展示,因为它都被锁定在大函数中。下面是我要做的:
function workOutSomeVal() {
// lots of code to work out values and stuff
var finalValue = some mathematical equation to work out value;
var anotherValue = a different value;
$(".some-textbox").val((finalValue).toFixed(2));
$(".another-textbox").val((anotherValue).toFixed(2));
} // my question is, how could I get rid of .toFixed(2) and put in a generic statement somewhere to target all the textboxes?
您可以调用一个函数来完成以下操作:
function roundTextBoxes() {
$("input[type=text]").val(function() {
return (+this.value).toFixed(2);
});
}
…然后在它们发生变化时调用它。示例:http://jsbin.com/toyoc/1
这可能意味着有时,用户在查看页面时做心算会发现它不完全加起来…
你可以给所有你想要"舍入"的文本框一个共同的类,然后使用这个类选择然后将你的舍入逻辑应用到每个文本框。
// let's say all the roundable textboxes have the class "roundable"
$('.roundable').each(function() {
var value = // some mathematical equation to work out value
$(this).val((value).toFixed(2));
});
另一种方法:
为什么不把value.toFixed(2)放在计算的最后呢?
var finalValue = function(){
// var value = some calculation
return value.toFixed();
}
或者-如果你需要在其他地方的完整值,创建一个新的函数:
var finalValueView = function(){
finalValue().toFixed(2);
}
function workOutSomeVal() {
// ...
$(".some-textbox").val(finalValueView);
}
使用Math.round(num * 100) / 100
相关文章:
- 将数字四舍五入到小数点后两位
- 将数字四舍五入到小数点后两位,以设置货币格式
- AngularJS {{ val | number:1 }} 不四舍五入到小数点后 1 位
- 使用AngularJS将HTML文件中的数字限制为小数点后2位
- 如何在javascript中获取no的小数点后三位
- 用Javascript显示价格,小数点后两位
- 小数点后两位四舍五入-找不到正确的公式
- 将值提交到小数点后 2 位
- 如何将结果固定为小数点后 2 位
- 如何在输入上转换为小数点后 2 位
- 如何将小数向上舍入到小数点后 n 位
- 将 JavaScript 数字转换为小数点后两位
- 将结果限制在小数点后 2 位
- 更改为在小数点后添加 2 位数字
- Javascript 将数字舍入到小数点后 2 位
- 将数字舍入到小数点后两位,并删除任何其他小数点
- 防止用户在小数点前 2 位数字后输入更多数字
- 在谷歌图表中以小数点后两位显示数字
- 在 Javascript 中难以将 json 对象值四舍五入到小数点后两位
- 如果为float,则显示小数点2位;如果为int,则显示十进制0位