在javascript中,0.6*3,结果为什么是1.799999999998,怎么才能变成应得的1.8;如何将3*3的结果格式化为9.0,而不是9?谢谢!

wtoeb 2003-08-24 04:45:15
在javascript中,0.6*3,结果为什么是1.799999999998,怎么才能变成应得的1.8;如何将3*3的结果格式化为9.0,而不是9?谢谢!

<script>
<!--
function test(){
result=parseFloat(document.pns.n1.value)*parseFloat(document.pns.n2.value);
alert(result);
}
-->
</script>
<form name=pns action=# method=post>
<input name=n1 value=3>
<input name=n2 value=0.6>
<input type=button value=yes onclick="test()">
</form>
...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Math.round(parseFloat(需要四舍五入的数据)*10)/10 这样是保留1位小数
Math.round(parseFloat(需要四舍五入的数据)*100)/100 这样是保留两位小数
Math.round(parseFloat(需要四舍五入的数据)*1000)/1000 这样就保留三位小数了,以此类推
qiuzhizhe 2003-08-25
  • 打赏
  • 举报
回复
到javascript帮助文件中找Math.round()函数的用法
glassprogrammer 2003-08-25
  • 打赏
  • 举报
回复
不好意思, 中文问题:

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<script language="JavaScript">
function Mul(n1,n2){
var m=0;
var s1=n1.toString();
var s2=n2.toString();
try{
m+=s1.split(".")[1].length;
}catch(e){}
try{
m+=s2.split(".")[1].length;
}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
function test(n1, n2){
var s = "<tr>";
s += appendTD(n1 + "*" + n2);
s += appendTD(Mul(n1 , n2));
s += appendTD(n1*n2);
s += "</tr>";
document.write(s);
}
function appendTD(s){
return "<td>"+s+"</td>"
}
</script>
<body>
<table border=1 width="50%">
<tr>
<td>表达式</td>
<td>精确乘法</td>
<td>js 乘法(*)</td>
</tr>
<script language="JavaScript">
test(2.11, 2.1);
test(200.01, 0.003);
test(200.01, 399.9999);
test(0.01, 0.09999);
test(0.6, 3);
</script>
</table>
</body>
</html>
glassprogrammer 2003-08-25
  • 打赏
  • 举报
回复
这是我抄别人的, 给你参考:

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<script language="JavaScript">
function Mul(n1,n2){
var m=0;
var s1=n1.toString();
var s2=n2.toString();
try{
m+=s1.split(".")[1].length;
}catch(e){}
try{
m+=s2.split(".")[1].length;
}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
function test(n1, n2){
var s = "<tr>";
s += appendTD(n1 + "*" + n2);
s += appendTD(Mul(n1 , n2));
s += appendTD(n1*n2);
s += "</tr>";
document.write(s);
}
function appendTD(s){
return "<td>"+s+"</td>"
}
</script>
<body>
<table border=1 width="50%">
<tr>
<td>±í´ïʽ</td>
<td>¾«È·³Ë·¨</td>
<td>js ³Ë·¨(*)</td>
</tr>
<script language="JavaScript">
test(2.11, 2.1);
test(200.01, 0.003);
test(200.01, 399.9999);
test(0.01, 0.09999);
test(0.6, 3);
</script>
</table>
</body>
</html>
wtoeb 2003-08-25
  • 打赏
  • 举报
回复
谢谢!兄弟们好。
加到100分,算是敬重各位。
wtoeb 2003-08-24
  • 打赏
  • 举报
回复
这个函数怎么写呢???
WYlslrt 2003-08-24
  • 打赏
  • 举报
回复
谁让javascript是弱类型语言呢。没法。它不是专门搞程序的,而是在网页特效上的,所以不会那么精确。忍着吧,除非你自己写函数,用javascript的那些数学函数加上字符操作函数自己改吧
wtoeb 2003-08-24
  • 打赏
  • 举报
回复
再就是:
10/3的结果是:3.3333333,怎么样格式化为:3.33?

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧