JavaScript中输入值的舍入
我正在使用Js及其工作方式创建一个转换器应用程序,我希望当用户输入一个带小数点的值时,将其四舍五入乘以100,而如果输入没有小数点,则输出应保持不变,并将最终输出切分为最多4个字符 例如60.79(6079)、876(876)、009.89(989)、29.8888(2988) 我们将非常感谢您的帮助JavaScript中输入值的舍入,javascript,rounding,Javascript,Rounding,我正在使用Js及其工作方式创建一个转换器应用程序,我希望当用户输入一个带小数点的值时,将其四舍五入乘以100,而如果输入没有小数点,则输出应保持不变,并将最终输出切分为最多4个字符 例如60.79(6079)、876(876)、009.89(989)、29.8888(2988) 我们将非常感谢您的帮助 document.getElementById('Input').addEventListener('input', converter); function converter(e){
document.getElementById('Input').addEventListener('input', converter);
function converter(e){
var output = document.getElementById('output');
var error = document.getElementById('errors');
var reg= /£?\d+(?:\.\d+)?p?\b/ ;
var lbs = e.target.value;
if(reg.test(lbs)){
error.innerText = "";
output.style.display = 'block';
//Convert to sterling pounds
document.getElementById('sterling').innerHTML = '£' + parseFloat(lbs.replace(/[^0-9\.]/g, '')) * 100 ;
}
else{
error.innerText = "Invalid Input";
}
}
试试这个方法
var input = 67.89;
var output = Number((input + "").replace(".", "").slice(0,4));
然后,您可以使用
符号作为输出的前缀
output = "£ " + output;
假设再次获取输入以进行转换,则将其设置为
var input = e.target.value;
input = isNaN(input) ? +input.replace(/\£/, "") : +input;
var output = Number((input + "").replace(".", "").slice(0,4));
演示
var func=(输入)=>Number((输入+).replace(“.”,“”)。slice(0,4));
console.log(func(60.79));
控制台日志(func(876));
控制台日志(func(009.89));
console.log(func(29.8888))代码>
- 在正则表达式中,仅替换小数点(
)李>
- 去掉乘以100的倍数
- 使用
切片(0,4)
确保只包括最后4个字符
你应该可以走了
这是一个正在运行的exmaple:
var-lbs='94.32555%;
var res=“£”+parseFloat(磅替换(/\./g.)).replace(/\./g.)).slice(0,4));
控制台日志(res)代码>请尝试以下操作:
Math.round(29.8888 * 100);
问题是什么?谢谢,您的代码工作正常,但当用户输入一个开头带有英镑的值时,它显示一个错误NaN,,,我希望,%作为有效的英镑符号通过正则表达式,,,我希望它通过regex@Pweb浮点运算可能导致精度损失,因此避免了同样的情况。我认为这里不需要正则表达式。