我有一个用例,例如
如果我首先输入任何数字,则应打印0.0和该数字。
例如,如果我输入1,则应生成为。输入仅应限制为数字。 1 ---> 0.01。然后在输入另一个数字时,它应该产生如下输出
例如,如果我加2 12 ---> 0.12那么如果我加3,它应该产生的输出为123 ---> 1.23类似地,对于4它应该给出12.34
我尝试输入1到9,预期的输出是1234567.8´ but it is giving
1234567.8900000001`
请帮我。这是我尝试的代码
function decimalCheck() {
var dec = document.getElementById('number').value;
var flag = 0;
if (dec.length === 1) {
document.getElementById('number').value = dec * 0.01;
flag++;
}
if (dec.includes(".")) {
var res = dec.substring(dec.indexOf(".") + 1);
console.log("res value is .............." + res);
if (res.length > 2) {
dec = dec * 10;
console.log("dec value is ............." + dec);
document.getElementById('number').value = dec;
//alert(dec);
}
}
}
Enter a number<input id="number" type="text" onkeyup="decimalCheck()" style="direction: rtl; "></input>
最佳答案
您可以通过在输出值之前添加.toFixed(2)
(fixed-point notation)来解决此问题。这将格式化为2位小数。
function decimalCheck() {
var dec = document.getElementById('number').value;
var flag = 0;
if (dec.length === 1) {
document.getElementById('number').value = dec * 0.01;
flag++;
}
if (dec.includes(".")) {
var res = dec.substring(dec.indexOf(".") + 1);
console.log("res value is .............." + res);
if (res.length > 2) {
dec = dec * 10;
console.log("dec value is ............." + dec.toFixed(2));
document.getElementById('number').value = dec.toFixed(2);
//alert(dec);
}
}
}
Enter a number<input id="number" type="text" onkeyup="decimalCheck()" style="direction: rtl;"></input>
关于javascript - javascript从右到左格式化为2个小数位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57905952/