亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問一下怎么能實現 = 5 時也進1 ?有什么好辦法?

請問一下怎么能實現 = 5 時也進1 ?有什么好辦法?

狐的傳說 2022-06-17 17:11:41
vb中怎么樣將一個小數點后第一位數字為5的數字四舍五入成整數,例如:將1.5變為2,很多函數我都試過,如 math.round(2.5) = 2 但是math.round(2.6) = 3,cint(2.5) = 2 ,cint(2.6) = 3,這兩個函數都是小數點后第一位 = 5 時就舍掉,大于5時就 進一,怎么能實現 = 5 時也進1 ,請高手指教啊,急
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

round()函數是4舍6入,5看奇偶。
比如 round(1.5,0)=2,round(2.5,0)=2,round(2.5001,0)=3,

這樣就是你的要求了
Int(2.5 + 0.5)=3
Int(2.499 + 0.5)=2

查看完整回答
反對 回復 2022-06-20
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

在 Option Strict Off 的情況下,可以使用 CInt 函數將其他數據類型顯式轉換為 Integer 類型。但是,Cint 并非截去數字的小數部分,而是舍入為最接近的整數。例如:

MyNumber = CInt(99.8) ' Returns 100.
MyNumber = CInt(-99.8) ' Returns -100.
MyNumber = CInt(-99.2) ' Returns -99.

自己模擬常見的四舍五入,需要 import system.math
function sishewuru(byval dblX as double) as integer
if dblx >= truncate(dblX) +0.5 then
return truncate(dblX) + 1
else
return truncate(dblX)
end if
end Function
隨便瞎寫的,你可能需要修改吧

查看完整回答
反對 回復 2022-06-20
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

在精度允許范圍內加上一點點,比如round(2.5+0.00001),結果就是3啦

private function RoundEx(byval dVal as Variant,optional byval lLen as long=0) as double
if isnumeric(dVal) then
if val(dVal)<0 then
RoundEx=round(val(dVal)-0.00000000000001,lLen)
elseif val(dVal)>0 then
RoundEx=round(val(dVal)+0.00000000000001,lLen)
else
RoundEx=0
end if
end if
end function


查看完整回答
反對 回復 2022-06-20
  • 3 回答
  • 0 關注
  • 216 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號