這應(yīng)該是由浮點(diǎn)數(shù)的誤差所造成的,你把kk設(shè)為雙精度浮點(diǎn)數(shù),那么結(jié)果就是1.34
綏中網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,綏中網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為綏中上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的綏中做網(wǎng)站的公司定做!
但是浮點(diǎn)數(shù)誤差與精度是無(wú)關(guān)的,雙精度也同樣存在,繼續(xù)測(cè)試你就會(huì)發(fā)現(xiàn)有趣的現(xiàn)象:
下面假定s為單精度浮點(diǎn)數(shù)變量,d為雙精度浮點(diǎn)數(shù)變量,則:
s = 1.345 Round(s, 2) = 1.35 (錯(cuò))
d = 1.345 Round(d, 2) = 1.34 (對(duì))
s = 2.345 Round(s, 2) = 2.35 (錯(cuò))
d = 2.345 Round(d, 2) = 2.35 (錯(cuò))
s = 3.345 Round(s, 2) = 3.35 (錯(cuò))
d = 3.345 Round(d, 2) = 3.34 (對(duì))
s = 4.345 Round(s, 2) = 4.34 (對(duì))
d = 4.345 Round(d, 2) = 4.34 (對(duì))
可以發(fā)現(xiàn)這錯(cuò)誤的發(fā)生是毫無(wú)規(guī)律的,有時(shí)候真能讓人發(fā)瘋!
VB6中Mod 運(yùn)算符功能是兩數(shù)相除求余。
如果兩數(shù)中帶小數(shù),Mod 會(huì)先四舍六入取整,再按整數(shù)求余,余數(shù)帶小數(shù)的話(huà)只取整數(shù)部分。
注意,如果有書(shū)說(shuō)四舍五入,是錯(cuò)的。
在 VB6 用的是所謂銀行家算法,是四舍六入:
小數(shù)部分比 0.5 小就舍(例如0.4,0.49999),比 0.5 大就進(jìn)(例如0.6,0.500001),
剛好是 0.5 可能舍可能進(jìn),如果小數(shù)點(diǎn)前面是偶數(shù)就舍(例如2.5 得 2),是奇數(shù)就進(jìn)(例如3.5 得 4)。
Mod 運(yùn)算符在VB.NET中有改動(dòng),余數(shù)可以帶小數(shù)。
以上資料來(lái)自:
所以2.5 mod 2結(jié)果是0
round是vb6.0的吧,我剛才查了一下,在vb.net里變成了枚舉了成員為
成員名稱(chēng) 說(shuō)明
RoundToBillionth 數(shù)字四舍五入為 9 個(gè)小數(shù)點(diǎn)位。
RoundToHundred 數(shù)字四舍五入為百位數(shù)。
RoundToHundredMillionth 數(shù)字四舍五入為 8 個(gè)小數(shù)點(diǎn)位
RoundToHundredth 數(shù)字四舍五入為 2 個(gè)小數(shù)點(diǎn)位
RoundToHundredThousand 數(shù)字四舍五入為十萬(wàn)位數(shù)。
RoundToHundredThousandth 數(shù)字四舍五入為 5 個(gè)小數(shù)點(diǎn)位。
RoundToMillion 數(shù)字四舍五入為百萬(wàn)位數(shù)。
RoundToMillionth 數(shù)字四舍五入為 6 個(gè)小數(shù)點(diǎn)位
RoundToTen 數(shù)字四舍五入為十位數(shù)。
RoundToTenBillionth 數(shù)字四舍五入為 10 個(gè)小數(shù)點(diǎn)位
RoundToTenMillionth 數(shù)字四舍五入為 7 個(gè)小數(shù)點(diǎn)位
RoundToTenth 數(shù)字四舍五入為 1 個(gè)小數(shù)點(diǎn)位。
RoundToTenThousand 數(shù)字四舍五入為萬(wàn)位數(shù)。
RoundToTenThousandth 數(shù)字四舍五入為 4 個(gè)小數(shù)點(diǎn)位。
RoundToThousand 數(shù)字四舍五入為千位數(shù)。
RoundToThousandth 數(shù)字四舍五入為 3 個(gè)小數(shù)點(diǎn)位。
RoundToUnit 數(shù)字四舍五入為個(gè)位數(shù)。要求
“四舍六入五成雙”,也即“4舍6入5湊偶”這里“四”是指≤4 時(shí)舍去,"六"是指≥6時(shí)進(jìn)上,"五"指的是根據(jù)5后面的數(shù)字來(lái)定,當(dāng)5后有數(shù)時(shí),舍5入1;當(dāng)5后無(wú)有效數(shù)字時(shí),需要分兩種情況來(lái)講:①5前為奇數(shù),舍5入1;②5前為偶數(shù),舍5不進(jìn)。(0是偶數(shù))
也就是非整數(shù)時(shí),先round函數(shù)取整,再求余。這個(gè)算法與excel 不同
round(-7.2)=-7, round(-3.5)=-3, round(2.5)=2, round(1.5)=2
這些整數(shù)再取余,應(yīng)該就好理解了
網(wǎng)站標(biāo)題:vb.net四舍六入的簡(jiǎn)單介紹
URL網(wǎng)址:http://www.rwnh.cn/article40/doshdeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)