我正在使用Js创建一个转换器应用程序并且它工作正常,我想当用户输入带小数位的值时,它会被乘以100向上舍入,而如果输入没有小数位,则输出应该保持不变并将最终输出切片为最多4个字符,,,
例如 60.79(6079),876(876),009.89(989),29.8888(2988)
任何帮助都会受到高度赞赏吗?
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";
}
}
答案 0 :(得分:0)
尝试这种方法
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 = (input) => Number((input + "").replace(".", "").slice(0,4));
console.log( func(60.79) );
console.log( func(876) );
console.log( func(009.89) );
console.log( func(29.8888) );
注意强>
100
),以避免精度损失答案 1 :(得分:0)
.
)。 slice(0,4)
确保仅包含最后4个字符。你应该好好去。
这是一个正在运行的例子:
var lbs = '94.32555£';
var res = '£ ' + parseFloat(lbs.replace(/\./g,'').replace(/\£/g,'').slice(0,4));
console.log(res);
&#13;
答案 2 :(得分:0)
尝试以下方法:
Math.round(29.8888 * 100);