使用不同浏览器解析JavaScript中的浮点数
我得到了一个带有一些输入控件的网页,例如减法使用不同浏览器解析JavaScript中的浮点数,javascript,html,Javascript,Html,我得到了一个带有一些输入控件的网页,例如减法 <table> <tr> <td><b>Value 1</b></td> <td /> <td><b>Value 2</b></td> <td><b>Result</b&g
<table>
<tr>
<td><b>Value 1</b></td>
<td />
<td><b>Value 2</b></td>
<td><b>Result</b></td>
</tr>
<tr>
<td>
<%-- step="0.01" because of Firefox-browser --%>
<input type="number" id="value11" oninput="SubtractionWithParameters(document.getElementById('value11').value, document.getElementById('value21').value, 'result', 2)" step="0.01" />
</td>
<td> - </td>
<td>
<input type="number" id="value21" oninput="SubtractionWithParameters(document.getElementById('value11').value, document.getElementById('value21').value, 'result', 2)" step="0.01" />
</td>
<td>
<input type="number" id="result" step="0.01" />
</td>
</tr>
</table>
现在的问题是IE和Firefox对浮点数的输入不同。
IE:0.36(带圆点)
Firefox:0,36(带逗号)
当我使用Firefox并在其中一个输入控件中输入包含点的floatnumber时,不会发生任何事情。
在函数减法中如何处理这个问题
提前谢谢 非常感谢!在给函数赋值时添加“.replace(',','。)”会有所帮助。非常感谢!在给函数赋值时添加“.replace(',','。)”会有帮助。如果IE和FF需要不同的格式,它们可能被设置为不同的区域设置。根据和的答案,
parseFloat()
特别需要点,而不需要逗号,无论区域设置如何。但是数字后面的逗号不会导致错误:parseFloat(“12,34”)
应该返回12
。非常感谢!为函数提供值时添加“.replace(',','。)”会有所帮助。如果IE和FF需要不同的格式,则它们可能被设置为不同的区域设置。根据和的答案,parseFloat()
特别需要点,而不需要逗号,无论区域设置如何。但是数字后面的逗号不会导致错误:parseFloat(“12,34”)
应该返回12
。非常感谢!在给函数赋值时添加“.replace(',','。)”会有所帮助。
//Subtracts the given parameters and displays the result in the input-Control with the given controlname.
function SubtractionWithParameters(value1, value2, resultControlName, decimalNumber) {
decimalNumber = typeof decimalNumber == 'undefined' ? 0 : decimalNumber;
document.getElementById(resultControlName).value = Subtraction(value1, value2).toFixed(decimalNumber);
}
//Subtracts the given parameters and returns the result.
function Subtraction(value1, value2) {
if (isNaN(value1) || value1 == "") { value1 = 0; }
if (isNaN(value2) || value2 == "") { value2 = 0; }
var result = parseFloat(value1) - parseFloat(value2);
return result;
}