使用Excel VBA以小数点拆分浮点数

我正在尝试在小数点处拆分一个数字,并将这两个部分存储在两个string中。

例如12.345存储为S1 = 12和S2 = 345

例如12.3450被存储为S1 = 12和S2 = 345

有人可以用Excel VBA引导我吗?

你可以使用splitfunction来做到这一点:

 Dim splitnnum Dim num as Double num = 111.222 splitnum = Split(Str(num), ".") s1 = splitnum(0) s2 = splitnum(1) 

这将在十进制分割和分配每个部分到一个string。

 Dim x as Variant Dim num1 as String, num2 as String x = Split(Str(12.345), ".") num1 = x(Lbound(x,1)) num2 = x(Ubound(x,1)) 

最简单的方法可能是这样的:

 Dim lHolder as Double Dim lWhole as Double Dim lRemain as Double lHolder = 12.345 ' Or whatever variable you have your number stored in lWhole = Fix(lHolder) lRemain = lHolder - lWhole 

然后,您可以根据需要轮换lRemain。 例如

 Round(lRemain, 5) ' Rounds out to 5 decimal places 

将返回.345

这会在小数点打破你的号码

mynumber = 111.222

splitmynumber = Split(Str(mynumber),“。”)

'这是一个存储2个数字的数组

numberbeforedecimal = val(splitmynumber(0))

numberafterdecimal = val(splitmynumber(1))

答案:111和222