我有一個數據文件,其中未指定小數點的小數點。該數字剛剛在數據文件的佈局中描述爲前兩位數字爲實數,後兩位數字爲小數,並且它隨不同字段,實數和小數部分而變化自定義舍入邏輯 - VB腳本 - QTP
所以實際數字12345.6789被指定爲123456789。當我想這是四捨五入至小數點後2分,以匹配應用的價值,我使用下面的邏輯
Public Function Rounding(NumberValue, DecimalPoints, RoundOff)
Rounder= Roundoff+1
Difference = DecimalPoints - Rounder
NumberValue = Mid(NumberValue, 1, Len(NumberValue)-Difference)
RealNumber=Mid(NumberValue,1,Len(NumberValue)-Rounder)
DecimalNumber=Right(NumberValue,Rounder)
NumberValue = RealNumber&"."&DecimalNumber
NumberValue = Cdbl(NumberValue)
NumberValue = Round(NumberValue, Roundoff)
Rounding = FormatNumber(NumberValue,Difference+1,,,0)
End Function
的但這個邏輯的問題是,我不能夠當四捨五入小數數具有0作爲十進制值
舉例來說,讓我們取12345.0000,我想四捨五入到2小數點
我的函數返回它作爲12345,而我希望這是返回爲12345.00
這個邏輯怎麼可能進行調整,以獲得所需的輸出任何想法或者是不可能的呢?
嗨,我誤解你的問題。你能否提供一個你如何稱呼你的功能的例子;例如:對於你的最後一個例子,它會被稱爲舍入(123450000,2,3)? – Damien
直到現在沒有注意到這一點。我糾正了這個問題。感謝您提出了FormatNumber函數。我已經更新了代碼。我打電話號碼爲NumberValue =舍入(NumberValue,4,2)。 4 - 小數位數。 2是我想要的號碼 –