vb.net保留整數(shù),vb語(yǔ)言取整數(shù)

VB.net,小數(shù)點(diǎn)直接進(jìn)一位的函數(shù)?

'自定義一個(gè)函數(shù):功能是給小數(shù)直接進(jìn)一位

創(chuàng)新互聯(lián)自成立以來(lái),一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開(kāi)發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷(xiāo)服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開(kāi)發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開(kāi)發(fā)工程師團(tuán)隊(duì)及專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。

'num  要操作的小數(shù)

'n 保留幾位小數(shù),

Function getNumber(num As Double, n As Integer) As Double

Dim a As Double

a = Int(num * (10 ^ n)) / (10 ^ n)

If a = num Then

getNumber = a

Else

getNumber = a + 1 / (10 ^ n)

End If

End Function

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

調(diào)用一下:

Private Sub Command1_Click()

MsgBox (getNumber(3.1415926, 2))

End Sub

得到3.15

關(guān)于VB.net取整的問(wèn)題

double是雙精度 有效數(shù)值位52位 表示成指數(shù)的形式 即指數(shù)11位 即表示成

所以180.89305用2進(jìn)制表示是10110100.1110010010011110111011001011111110110001010110110101

180.89305在double中存在的實(shí)際數(shù)值是

1.01101001110010010011110111011001011111110110001010110110101 *2^7

取小數(shù)點(diǎn)后 52位有效值后 等于10進(jìn)制的180.893049999999998

所及加最后變成了 1808930.99999999998

第一次當(dāng)然輸出近似值1808931

第二次int函數(shù)去掉了小數(shù)點(diǎn)后的數(shù)int就是只取整數(shù)的部位的不是四舍五入 所以少了1

VB中小數(shù)怎么取整?

有兩個(gè)函數(shù):Int 和 Fix。

Int 定義為返回不大于給定參數(shù)的最大整數(shù)值,如:

Int(3.9) = 3

Int(3.1) = 3

Int(3) = 3

Int(0) = 0

Int(-3) = -3

Int(-3.1) = -4

Int(-3.9) = -4

Fix 又稱(chēng)“截尾”函數(shù)。

即簡(jiǎn)單保留整數(shù)部分,如:

Fix(3.9) = 3

Fix(-3.9) = -3

如果需要“四舍五入”,則得巧妙利用 Int 函數(shù):

Int(x + 0.5) 表示四舍五入到個(gè)位;

Int(x * 100 + 0.5) * 0.01 表示四舍五入到百分位(小數(shù)點(diǎn)后第二位)

vb.net 如何用format轉(zhuǎn)換小數(shù)成整數(shù)

直接用int就可以了。

int(2310.125)=2310

如果需要自定義格式輸出,就要用tostring方法,比如:

2310.231.tostring("0")的結(jié)果就是2310。

如果你要去掉個(gè)位數(shù),看來(lái)只有(2310.231/10).tostring("0")了。

詳細(xì)的ToString里面的參數(shù),請(qǐng)看MSDN。我查了一下,有,地址是:

vb.net 保存小數(shù)點(diǎn)后兩位,不進(jìn)位,有無(wú)函數(shù)?

代碼分析:

Math.Floor:返回小于或等于指定數(shù)字的最大整數(shù)。

Fix:返回?cái)?shù)字的整數(shù)部分。

Math.Floor?和?Fix?函數(shù)都移除?Number?的小數(shù)部分并返回得到的整數(shù)值。

Math.Floor?和?Fix?函數(shù)之間的區(qū)別在于:如果?Number?為負(fù),則?Math.Floor?返回小于或等于?Number?的第一個(gè)負(fù)整數(shù),而?Fix?返回大于或等于?Number?的第一個(gè)負(fù)整數(shù)。例如,Math.Floor?將?-8.4?轉(zhuǎn)換成?-9,而?Fix?將?-8.4?轉(zhuǎn)換成?-8。

你的要求:如果你的要求是直接舍去,那么應(yīng)當(dāng)采用Fix方法,考慮到時(shí)負(fù)數(shù)的情況,那么采用Math.Floor將會(huì)出現(xiàn)非預(yù)期的結(jié)果。

測(cè)試結(jié)果:見(jiàn)附圖。

歡迎交流。

網(wǎng)站欄目:vb.net保留整數(shù),vb語(yǔ)言取整數(shù)
鏈接分享:http://muchs.cn/article36/hcicpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、軟件開(kāi)發(fā)、微信小程序網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)