同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 Math.Round()方法的四舍五入

Math.Round()方法的四舍五入

來源: | 時(shí)間:2013/4/27 9:25:42 |

先聲明這個(gè)是在.NET環(huán)境下的,Java等語言并不是一樣的.

今天遇到個(gè)問題,項(xiàng)目需要數(shù)字四舍五入。立即想到Math.Round這個(gè)函數(shù),在我的印象中它就是個(gè)四舍五入的函數(shù),想都沒想就套用上去了。

結(jié)果我在測試的時(shí)候發(fā)現(xiàn)實(shí)際上并不是這樣的。我測試的數(shù)據(jù)為0.4,0.6,0.5和1.5。發(fā)現(xiàn)其結(jié)果和預(yù)想的結(jié)果大不相同。0.4和0.6這個(gè)不用說沒問題分別返回了0和1,沒錯(cuò)。奇怪的是0.5這個(gè)值居然返回的是0,我一琢磨難道Math.Round函數(shù)是五舍六入不成??于是看了下1.5的返回值,按我上一步的推斷應(yīng)該返回1,結(jié)果恰恰返回了2!

這回蒙了~ 馬上打開網(wǎng)頁,在MSDN上需求答案,果不其然!Math.Round這個(gè)函數(shù)的解釋是將雙精度浮點(diǎn)值按指定的小數(shù)位數(shù)舍入,并不就是四舍五入。這種舍入有時(shí)稱為就近舍入或四舍六入五成雙。(直接調(diào)果然不行~),那怎么辦呢?繼續(xù)往下看,如果 a 的小數(shù)部分正好處于兩個(gè)整數(shù)中間,其中一個(gè)整數(shù)為偶數(shù),另一個(gè)整數(shù)為奇數(shù),則返回偶數(shù)。 這句話什么意思呢?
我是看了半天也沒看明白,小數(shù)部分正好處于2個(gè)整數(shù)之間??難道小數(shù)部分后面還有數(shù)?那是什么數(shù)阿,反正我是沒理解,沒辦法只能自己敲代碼實(shí)驗(yàn):

Math.Round(0.4) //result:0
Math.Round(0.6) //result:1
Math.Round(0.5) //result:0
Math.Round(1.5) //result:2
Math.Round(2.5) //result:2
Math.Round(3.5) //result:4
Math.Round(5.5) //result:6
Math.Round(6.5) //result:6
Math.Round(8.5) //result:8
Math.Round(9.5) //result:10
大家看出來了沒,我就從就近舍入或四舍六入五成雙這句話來理解,就近舍入?沒說清楚,四舍五入!嗯,沒錯(cuò)0.4和0.6結(jié)果都符合要求,那么五成雙什么意思呢?我也不太明白,那就看上面的數(shù)據(jù)!發(fā)現(xiàn)沒,離小數(shù)位最近整數(shù)值,或者說當(dāng)舍入位前面一位的值,如果是偶數(shù)的話,它就進(jìn)1,如果是奇數(shù)的話,就舍!~原來是這樣。

服務(wù)熱線

153 8323 9821

功能和特性

價(jià)格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號(hào)