最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決JS中乘法的浮點錯誤的方法

 更新時間:2014年01月03日 09:09:52   作者:  
本篇文章主要介紹了解決JS中乘法的浮點錯誤的方法。需要的朋友可以過來參考下,希望對大家有所幫助

JS里做小數(shù)的乘法運算時會出現(xiàn)浮點錯誤,具體可以測試一下: 

<script>
alert(11*22.9)
</script>

結(jié)果是251.89999999999998 而不是251.9 

這個問題想必有很多人為之頭痛。那么如何解決呢?在此給出解決辦法。

1、

復(fù)制代碼 代碼如下:

<script>
alert(11*(22.9*10)/10);
</script> 
 
解決問題的大概思路就是,先把因數(shù)放大為整數(shù),最后再除以相應(yīng)的倍數(shù),這樣就能得到正確的結(jié)果了。 
2、
復(fù)制代碼 代碼如下:

<script defer>
Number.prototype.rate=function(){ 
var oStr=this.toString();
if(oStr.indexOf(".")==-1) 
return 1;
else
return Math.pow(10,parseInt(oStr.length-oStr.indexOf(".")-1));
}

function tran(){
args=tran.arguments;
var temp=1;
for(i=0;i<args.length;i++)
temp*=args[ i ]*args[ i ].rate();
for(i=0;i<args.length;i++) 
temp/=args[ i ].rate();
return temp
}

alert(tran(11,22.9));

</script>


該解決辦法是比較麻煩的辦法,但是卻能讓你大概了解解決這個問題的實際過程。

也可以用四舍五入的方法,  js中可以使用Math.round實現(xiàn)整數(shù)的四舍五入,如果需要實現(xiàn)精確到小數(shù)點多少位則需要編寫函數(shù)了。

復(fù)制代碼 代碼如下:

function ForDight(Dight,How) {
   Dight = Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);
   return Dight;
}  

//除法函數(shù),用來得到精確的除法結(jié)果
//說明:javascript的除法結(jié)果會有誤差,在兩個浮點數(shù)相除的時候會比較明顯。這個函數(shù)返回較為 精確的除法結(jié)果。
//調(diào)用:accDiv(arg1,arg2)
//返回值:arg1除以arg2的精確結(jié)果
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}

//給Number類型增加一個div方法,調(diào)用起來更加 方便。
Number.prototype.div = function (arg){
return accDiv(this, arg);
}

//乘法函數(shù),用來得到精確的乘法結(jié)果
//說明:javascript的乘法結(jié)果會有誤差,在兩個浮點數(shù) 相乘的時候會比較明顯。這個函數(shù)返回較為精確的乘法結(jié)果。
//調(diào)用:accMul(arg1,arg2)
//返回值:arg1乘以 arg2的精確結(jié)果
function accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.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)
}

// 給Number類型增加一個mul方法,調(diào)用起來更加方便。
Number.prototype.mul = function (arg){
return accMul(arg, this);
}

//加法函數(shù),用來得到精確的加法結(jié)果
//說明:javascript的加法 結(jié)果會有誤差,在兩個浮點數(shù)相加的時候會比較明顯。這個函數(shù)返回較為精確的加法結(jié)果。
//調(diào)用:accAdd(arg1,arg2)
// 返回值:arg1加上arg2的精確結(jié)果
function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}

//給Number類型增加一個add方法,調(diào)用起來更加方便。
Number.prototype.add = function (arg){
return accAdd(arg,this);
}

相關(guān)文章

  • 深入理解javascript prototype的相關(guān)知識

    深入理解javascript prototype的相關(guān)知識

    這篇文章主要介紹了深入理解javascript prototype的相關(guān)知識,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • IE Firefox 使用自定義標簽的區(qū)別

    IE Firefox 使用自定義標簽的區(qū)別

    IE Firefox 使用自定義標簽的區(qū)別,需要的朋友可以參考下。
    2009-10-10
  • CSS(js)限制頁面顯示的文本字符長度

    CSS(js)限制頁面顯示的文本字符長度

    限制頁面顯示的字符長度,一直被眾多網(wǎng)友傾睬,本人也是一fans利用閑暇時間搜集整理了一些實用技巧,需要了解的朋友可以參考下
    2012-12-12
  • JavaScript實現(xiàn)下拉列表

    JavaScript實現(xiàn)下拉列表

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)下拉列表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 純CSS3代碼實現(xiàn)滑動開關(guān)效果

    純CSS3代碼實現(xiàn)滑動開關(guān)效果

    CSS33D炫酷左右滑動開關(guān)按鈕是一款非常酷的CSS3 3D開關(guān)按鈕,點擊按鈕可以左右滑動,就像開關(guān)打開閉合一樣的效果,通過本篇文章給大家介紹純CSS3代碼實現(xiàn)滑動開關(guān)效果,需要的朋友可以參考下
    2015-08-08
  • three.js搭建室內(nèi)場景教程

    three.js搭建室內(nèi)場景教程

    這篇文章主要為大家詳細介紹了three.js搭建室內(nèi)場景教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Chart.js與ECharts.js圖表使用過程組件對比

    Chart.js與ECharts.js圖表使用過程組件對比

    chartjs只能基于canvas,雖然只有英文文檔,但定制化程度更高,社區(qū)成熟,功能就更加穩(wěn)定,ECharts.js可以基于svg或者canvas去渲染,有融合主流前端框架的社區(qū)庫,另外ECharts.js還支持3d效果的圖表,相當炫酷,國內(nèi)開發(fā)者大多數(shù)使用這個,有中文文檔
    2023-10-10
  • JavaScript 編程引入命名空間的方法

    JavaScript 編程引入命名空間的方法

    JavaScript 編程引入命名空間的方法...
    2007-06-06
  • JS實現(xiàn)QQ圖片一閃一閃的效果小例子

    JS實現(xiàn)QQ圖片一閃一閃的效果小例子

    這篇文章介紹了JS實現(xiàn)QQ圖片一閃一閃的效果小例子,有需要的朋友可以參考一下
    2013-07-07
  • 原生JS實現(xiàn)的雙色球功能示例

    原生JS實現(xiàn)的雙色球功能示例

    這篇文章主要介紹了原生JS實現(xiàn)的雙色球功能,涉及javascript隨機數(shù)生成及數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02

最新評論

寿光市| 无锡市| 德保县| 德惠市| 安达市| 新宁县| 肥乡县| 贵定县| 桦川县| 普宁市| 天祝| 济阳县| 丘北县| 盘山县| 百色市| 东乌珠穆沁旗| 香格里拉县| 深圳市| 台东县| 略阳县| 石景山区| 博兴县| 华安县| 南安市| 汝阳县| 昌宁县| 三台县| 增城市| 浏阳市| 建宁县| 屯留县| 呼图壁县| 玛沁县| 加查县| 金坛市| 海林市| 岳池县| 太原市| 安仁县| 且末县| 清徐县|