<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="解决javascript中加减乘除丢失精度问题的方法" id="card1">
<p> 游客</p><p>
标题:解决javascript中加减乘除丢失精度问题的方法<br/>
正文:<br/>
在javascript中，当你使用小数进行加减乘除运算时，你会发现，所得到的结果有时后面带有长长的一段小数，使运算变得复杂，并且影响计算结果。上网查询了一下原因，大致如下：在javascript中，带小数的数据运算时总会出现好多位小数.这是因为在javascript中浮点数的计算是以2进制计算的。 <br/>代码如下:<br/>/** <br/>* 加法运算，避免数据相加小数点后产生多位数和计算精度损失。 <br/>* <br/>* @param num1加数1 | num2加数2 <br/>*/ <br/>function numAdd(num1, num2) { <br/>var baseNum, baseNum1, baseNum2; <br/>try { <br/>baseNum1 = num1.toString().split(&quot;.&quot;)[1].length; <br/>} catch (e) { <br/>baseNum1 = 0; <br/>} <br/>try { <br/>baseNum2 = num2.toString().split(&quot;.&quot;)[1].length; <br/>} catch (e) { <br/>baseNum2 = 0; <br/>} <br/>baseNum = Math.pow(10, Math.max(baseNum1, baseNum2)); <br/>return (num1 * baseNum + num2 * baseNum) / baseNum; <br/>}; <br/>/** <br/>* 加法运算，避免数据相减小数点后产生多位数和计算精度损失。 <br/>* <br/>* @param num1被减数 | num2减数 <br/>*/ <br/>function numSub(num1, num2) { <br/>var baseNum, baseNum1, baseNum2; <br/>var precision;// 精度 <br/>try { <br/>baseNum1 = num1.toString().split(&quot;.&quot;)[1].length; <br/>} catch (e) { <br/>baseNum1 = 0; <br/>} <br/>try { <br/>baseNum2 = num2.<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1158&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1158&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1158&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1158&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1158&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1158">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1158">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>