正确的显示的是:87590.09但是运算出来的确是:87590.090000…","url":"https://www.cnblogs.com/ipusr/archive/2011/02/28/1966704.html","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.cnblogs.com/ipusr/archive/2011/02/28/1966704.html"},"image":"https://juhe.plus/apple-touch-icon.png","publisher":{"@type":"Organization","name":"惯性聚合","logo":{"@type":"ImageObject","url":"https://juhe.plus/apple-touch-icon.png"}},"author":{"@type":"Person","name":"ipusr"},"datePublished":"2011-02-28T01:42:00.000Z"}]}
惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
Scott Helme
Scott Helme
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
Webroot Blog
Webroot Blog
S
Security Affairs
H
Hacker News: Front Page
TaoSecurity Blog
TaoSecurity Blog
W
WeLiveSecurity
G
GRAHAM CLULEY
T
Tenable Blog
Schneier on Security
Schneier on Security
S
Securelist
Cyberwarzone
Cyberwarzone
P
Privacy International News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Schneier on Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recent Commits to openclaw:main
Recent Commits to openclaw:main
O
OpenAI News
N
News and Events Feed by Topic
AWS News Blog
AWS News Blog
C
Cisco Blogs
T
Threat Research - Cisco Blogs
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
D
DataBreaches.Net
博客园_首页
MyScale Blog
MyScale Blog
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
P
Proofpoint News Feed
J
Java Code Geeks
SecWiki News
SecWiki News
P
Palo Alto Networks Blog
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

博客园 - ipusr

SQL 压缩日志 SQL性能优化总结 - ipusr - 博客园 net dll 破解 Balsamiq Mockups 小窍门 Web键盘操作键值表 - ipusr - 博客园 .NET 项目中用到的广告效果 如何防止空链接 # 返回到页面 - ipusr PowerDesigner使用注意事项 sql表数据生成insert HBKrnl木马病毒杀毒办法(HBKernel.sys) (转)jQuery 基础 - ipusr - 博客园 使用Javascript操作DOM的一些方法--元素的访问/复制等 - ipusr - 博客园 JS获取所有对象 javascript - ipusr - 博客园 用户中心 - 博客园 数字验证 控件 - ipusr - 博客园 Net读取Execl问题回顾 - ipusr - 博客园 SET NOCOUNT RowCount 説明 sysloader 木马清除方法
javascript对float数值进行运算的误差解決
ipusr · 2011-02-28 · via 博客园 - ipusr

<script language="javascript">   

alert(87593.21-3.12);   

</script>  

正确的显示的是:87590.09
但是运算出来的确是:87590.09000000001

可采用 toFixed处理,如:

<script language="javascript">   

alert((87593.21-3.12).toFixed(2));   

</script>  

---------------------------------

toFixed 方法问题:

<script language="javascript">   

alert(0.009.toFixed(2));   

</script>  

运算的结果0.00,但是需要的是 0.01

解决方法:

Number.prototype.toFixed = function(d)    

{    

    var s=this+"";if(!d)d=0;    

    if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");    

    if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))    

   {    

       var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;    

      if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)    

      {    

           for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;    

            if(a[i]==10){a[i]=0; b=i!=1;} else break;}    

        }    

        s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");    

    }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";    

};