js中两数相除结果为inifity的问题。

在js中,两个数相除,得到的是initify,我想要的结果是两位小数。请问如何做

首先你要看看你的被除数是不是为0,因为任何数除以0都会是initify.

如果不是0,两个数相除一般都会是正常的数字,具体怎么保留小数位,可以用Math单体函数。

如果有帮助,希望结帖

用Math模块的Round函数

理论上是你的两个数除完之后变成了无穷

两个数相除只可能是除数为0导致的了。保留2为小数用toFixed方法,参数为要保留的小数位数

 var a=1.256789;
alert(a.toFixed(2))

var sum=(a/b).toFixed(2);//toFixed(2)这里的数据写的是保持位数的个数

var t1=1.7976931348623157E+10308 document.write(t1) document.write("<br />") var t2=-1.7976931348623157E+10308 document.write(t2)

只有数字超过以上的两个数,就会是Infinity或者-Infinit;
建议你用BigDecimal表示数字
http://down.51cto.com/data/512829
http://www.downscripts.com/bigdecimal.js_javascript-script.html

首先确保除数和被除数是符合除法规则的数据,在js中数据的操作尤其是在数值操作时经常会自动的进行数据类型转换,如操作数二是个空串,就会被自动转换为0,以及数值精确度的取舍,比较精确的计算不建议使用js。出现无穷的情况需要检查操作数是不是有0或空串,或是本身就是无穷。我的博客中有关于js的部分,也许能解决你的问题,

  1. 除数为0
  2. 除不尽