0

请原谅我这个愚蠢的问题,但我是一个 JS 菜鸟。

我创建了以下代码,但无法对其进行舍入(2 位小数)。

请帮忙!

<html>  
<head>  
<title>Simple Calc</title>  
<script language="javascript" type="text/javascript">  
function combineder(){  
a=Number(document.calculator.number1.value);  
b=Number(document.calculator.number2.value);
c=(a/452)/(b/100)
document.calculator.total.value=c;  
}  
</script>  
</head>  
<body>  
<form name="calculator">  
A: <input type="text" size="2"name="number1">   
<BR>  
B: <input type="text" name="number2">   
<BR>
<input type="button" value="Calculate!" onclick="javascript:combineder();">  
<br>
Your results is: $<input type="text" name="total">   

</form>  

</body>  
</html>
4

4 回答 4

1

首先,您不应该javascript:etc...在属性中使用,我认为您与将javascript 作为 url 执行onclick的属性混淆了。href相反,您应该简单地拥有onclick="combineder();"

其次,你应该使用var在局部范围内声明变量,这样它们就不会与全局命名空间中的其他变量发生冲突。像这样声明变量:var c = 123;

对于您的问题,您可以这样做以四舍五入到 2 dp - 这不会留下尾随 0

// ...
var c=(a/452)/(b/100)
c = Math.round(c*100)/100
// ...

或者这个,它总是会留下尾随的 0,并将作为数字的字符串表示形式返回

// ...
var c=(a/452)/(b/100)
c = c.toFixed(2)
// ...

相关答案:https ://stackoverflow.com/a/7343013/665261

于 2012-10-11T12:37:58.107 回答
0

只需使用

.toFixed(2);

减少到小数点后两位

或者你可以使用

Math.round();

圆它。

于 2012-10-11T12:39:08.970 回答
0

尝试使用.toFixed(). 这是一个例子

var myNum = 10.45621;
var newNum = myNum.toFixed(2);

只需将您希望四舍五入的小数位数传递给该.toFixed()方法即可。请在此处toFixed()查看该方法的更多信息。

于 2012-10-11T12:37:08.963 回答
0

JavaScript 有number.toFixed( [digits] )

你想要两个地方,所以它会是

document.calculator.total.value=c.toFixed(2); 
于 2012-10-11T12:37:31.180 回答