五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > js計(jì)算的誤差

js計(jì)算的誤差

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):478    更新時(shí)間:2009-09-13 10:38   參與評(píng)論
      今天弄到j(luò)s計(jì)算成比例縮放功能,發(fā)現(xiàn)一有趣的問(wèn)題,我只要縮小了再放大就不可能回到原來(lái)的樣子(成比例的),細(xì)細(xì)研究發(fā)現(xiàn)js在計(jì)算147*1.1的時(shí)候結(jié)果居然為161.70000000000002!你把這個(gè)值賦給img后,img只接受整數(shù)也就是161,后面再去縮小乘0.9的時(shí)候?yàn)?44.9,偏差就很大了。縮小一次就偏3像素,無(wú)法接受。
js浮點(diǎn)誤差似乎稍微恐怖了點(diǎn),^_^

研究后的解決方法:把比例先乘10再把結(jié)果除10,不管小數(shù)點(diǎn)后面是幾都給整數(shù)上加1。每縮小一次都這樣執(zhí)行。
縮小同理,乘9最后再把結(jié)果除10,整數(shù)上加1,誤差會(huì)小很多。但不是沒(méi)有誤差,還是有的,相比之前小了很多很多而已,不知道哪位有沒(méi)有無(wú)誤差的方法,指點(diǎn)我一下。  呵呵   鉆死理了。
   ps:
      js的Math.ceil()方法可以取整,只要有小數(shù)位直接給整數(shù)位+1.

浮點(diǎn)數(shù)運(yùn)算的誤差原因:

很正常的,浮點(diǎn)數(shù)運(yùn)算的誤差。哪種語(yǔ)言都這樣,只是誤差大小不同而已。  
  用解析字符串的方式移動(dòng)小數(shù)點(diǎn),轉(zhuǎn)化為整數(shù),完畢后,在把小數(shù)點(diǎn)復(fù)位。  
  浮點(diǎn)數(shù)運(yùn)算的時(shí)候,先轉(zhuǎn)化為二進(jìn)制,用二進(jìn)制來(lái)算,結(jié)果再轉(zhuǎn)回十進(jìn)制  
  例如   :求1038.1-1000  
  1038.1=10000001110.0001100110011001100110011001100110011001100.....    
  1000=       1111101000  
  1038.1轉(zhuǎn)化為二進(jìn)制是個(gè)無(wú)限循環(huán)小數(shù),1100是循環(huán)節(jié),只能取近似值,誤差就是這里產(chǎn)生的
Tag標(biāo)簽: js計(jì)算,縮放

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (478人查看0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)