我只想把字符型原封不动的转换成数字型,值不要变化,
但是从结果上看,值变化了,我的这个需求改如何实现呢,
在线等
alert(Number('9999999.9999999')
结果 9999999.9999999 
alert(Number('99999999.99999999')
结果 99999999.99999998
alert(Number('99999999.999999999')
结果 100000000

解决方案 »

  1.   

    带小数会往float上转换所以以小数点为界
    把整数和小数分成两个独立的部分,这样就可以按整数去加工处理但是当整数部分达到 16个9的时候
    Number('9999999999999999')结果成了10000000000000000测试用
    <script>
    alert(Number('999999999999999'))
    alert(Number('9999999999999999'))
    </script>这差额就大了,晕死了
      

  2.   

    建议
    (1)或者自己写个大浮点数的JS类
       这里有大整数计算类可用http://www.ohdave.com/rsa/
       大浮点数的JS类没有发现过。
    (2)或者将请求发给服务器处理,服务器语言一般都可以找到现成的资源,比如Java就有BigInteger,BigDecimal之类。
      

  3.   

    如果有小数点就用parseFloat、没有小数就用parseInt
      

  4.   

    parseFloat()转换,toFixed()指定小数点后精度