[英]Rounding a figure retrieved from html using javascript and jquery
我对从html引入的舍入数字有一点问题。
例如, <input id="salesValue"> using var salesValue = $("salesValue").val()
从<input id="salesValue"> using var salesValue = $("salesValue").val()
提取的值将给我一个文本值。
因此,如果我做了var doubleSalesValue = salesValue + salesValue;
,它将以串联的形式返回数字,而不是将两个值的总和返回。
我可以使用var doubleSalesValue = salesValue * 2.0;
确实会返回到多个小数位的值。 但是,如果我确实想使用其他方法,该如何处理这种情况。
您使用什么方法? 我创建了一个函数,该函数在每个我希望限制小数位数并将数字类型转换为数字的数字上运行
function round(number, figure){
return Number(Number(number).toFixed(figure));
}
我必须首先运行Number,以确保将值转换为number类型并具有toFixed
方法,否则它将在此处引发错误。 然后,我必须将数字再次四舍五入到函数要求的小数位数,并且在运行toFixed
方法后,有时数字有时会变成字符串。
因此,我决定运行Number
函数Number(number).toFixed(figure)
您是否还有其他遵循的范式或其他范式?
编辑:我想知道我在这里做的是常规的还是总体上有更好的方法?
如果要将其四舍五入到小数点后两位,则只需执行以下操作:
var roundedNum = Math.round(parseFloat(originalNum) * 100) / 100;
关于您的问题:
并且以某种方式运行toFixed方法后,数字有时会变成字符串。
我建议下次再读一次更好的Dox https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed ,其中说:
返回
数字的字符串表示形式,该形式不使用指数表示法,并且在小数点后第一个数字位具有精确数字。 如果需要,数字会四舍五入,如果需要,小数部分将用零填充,以便具有指定的长度。 如果number大于1e + 21,则此方法仅调用Number.prototype.toString()并以指数表示法返回字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.