注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

任焱-廊坊师范学院信息技术提高班十期

改变是痛苦的,可是不改变就不会有改变!

 
 
 

日志

 
 

VB中的四舍五入,你知道多少?  

2013-02-25 16:01:03|  分类: VB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

关于四舍五入的函数有很多,比如说:CInt()、CLng()、round()。

实际上这些函数都不能很好的完成对小数的四舍五入的功能!原因是在VB中这些函数都是采用的四舍六入五留双的这样原则,比如说:CInt(0.5)=0     CLng(0.5)=0   round(3.45,1)=3.4                                                                                         

当分数部分恰好为 0.5 时,CInt 、CLng、Round函数通常将其四舍五入为最接近的偶数。

既然这些函数都不能很好的处理好小数,可是我们需要计算一些小数的四舍五入怎么办呢?

我们可以利用Int()函数来自己写一个四舍五入的函数,Int(x*10^a+0.5)/10^a   这样就能让我们就能对x保留a位小数进行四舍五入了。

可是问题又来了,我们写的这个函数会出现错误,比如对93.175保留2位小数:

VB中的四舍五入,你知道多少? - 任焱 - 任焱-廊坊师范学院信息技术提高班十期
我自己举了很多其他的数字,结果发现,这个函数还是不能实现我们数学上的四舍五入,可是为什么结果是93.17呢?如果按照VB的运算顺序来说答案也应该是93.18才对啊,我问了很多人都不知道是什么原因,没办法,只能去请教什么都懂的米老师。
米老师告诉我:“计算机和数学不一样,它的计算方法和数学也不一样,所以计算机会出现误差,我们只要知道这个函数可能会出现误差就行了,不用深究!“
老师还说了好多大概为什么会出错的原因,反正我是没听懂,没办法,谁让我水平低呢,现在也没办法,也只能记住它会出现这样的误差就行了。
可是我们四舍五入的要求还是没有达到,怎么办呢? 其实很简单,因为我们有一个很强大的格式输入函数format()
用format()函数来四舍五入:
VB中的四舍五入,你知道多少? - 任焱 - 任焱-廊坊师范学院信息技术提高班十期
反正到现在我没有发现用format()函数计算四舍五入有什么误差!
或许有一天你们会发现,如果发现了的话就告诉我吧!
  评论这张
 
阅读(4086)| 评论(18)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017