请问如何让类似 “2/(1-1/3)”这样的表达式得到精确的值?结果应该是3,但javascript中得到的是2.99...5

blucecat 2004-04-10 01:48:44
有什么办法让2/(1-1/3)等于3?谢谢!当然不仅仅是这一个表达式,我仅仅举了一个例子而已
...全文
86 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tqhchina 2004-04-25
  • 打赏
  • 举报
回复
up
blucecat 2004-04-12
  • 打赏
  • 举报
回复
coolfish11(酷鱼) 你这个例子不错呀,我刚才也测试了好几个例子也没检查出错误,你这个例子就让pow那个方法不对了,非常感谢!
coolfish11 2004-04-12
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
//** power by fason
var n= 2/((1-1/3)-1/2);
alert(parseFloat(n.toFixed(10)));
with (Math)
{
alert(round(n*pow(10,15))/pow(10,15));
}

//-->
</script>

结果一个是12 一个是11.999999999999994
blucecat 2004-04-12
  • 打赏
  • 举报
回复
fason(阿信)的方法真好!
cybernaute(思客) 想说明什么?
bflovesnow 2004-04-11
  • 打赏
  • 举报
回复
mark
cybernaute 2004-04-11
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
var n= 1/(1-2/5);

alert(parseFloat(n.toFixed(0)));

alert(parseFloat(n.toFixed(15))); //contrast

with(Math) {
alert(round(n*pow(10,15))/pow(10,15)); //contrast
}
//-->
</script>
fason 2004-04-10
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
//** power by fason
var n= 2/(1-1/3);
with (Math)
{
alert(round(n*pow(10,15))/pow(10,15));
}
//-->
</script>
fason 2004-04-10
  • 打赏
  • 举报
回复
it works...
<script language="JavaScript">
<!--
//** power by fason
var n= 2/(1-1/3);
alert(parseFloat(n.toFixed(15)));
//-->
</script>
blucecat 2004-04-10
  • 打赏
  • 举报
回复
但其他高级语言的结果都是非常正确的
2/(1-1/3)就是等于3,我不知道他是怎样计算出来的
当然,javascript不适合做计算,但我想要解决这个问题应该由办法的

等待中。。。。。。。
xylegend 2004-04-10
  • 打赏
  • 举报
回复
应该没有办法吧……计算机又不是人
blucecat 2004-04-10
  • 打赏
  • 举报
回复
littleboys(飞龙) 能不能解释一下你的算法?我有点搞不懂,谢谢。
littleboys 2004-04-10
  • 打赏
  • 举报
回复
我这里有相乘的解决方法,可以参考。


function fxMultiply(a,b)
{
var f1 = String(a).split(".").length>1 ? String(a).split(".")[1].length : 0;
var f2 = String(b).split(".").length>1 ? String(b).split(".")[1].length : 0;
var aa = String(a).replace(/^0*|\./g,'');
var bb = String(b).replace(/^0*|\./g,'');
return Number(aa)*Number(bb)/Math.pow(10,f1+f2);
}
blucecat 2004-04-10
  • 打赏
  • 举报
回复
我不想取整,比如1/50还是等于0.02
51windows 2004-04-10
  • 打赏
  • 举报
回复
返回大于等于其数字参数的最小整数。
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(Math.ceil(2/(1-1/3)))
//-->
</SCRIPT>


返回小于等于其数值参数的最大整数。
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(Math.floor(2/(1-1/3)))
//-->
</SCRIPT>

87,910

社区成员

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

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