VB2010我有一个用户表单,用户输入数字格式。例程然后循环遍历数字对列表并将其显示在类别列表中:
User format "0.00"
0.00 - 164.04
164.04 - 410.10
410.10 - 820.21
我要做的是将第一个值增加一位,这样就没有重叠了。类似的东西:
0.00 - 164.04
164.05 - 410.10
410.11 - 820.21
我正在努力使其适用于用户输入的任何数字格式,如“0.000”或“0.0”。我目前拥有的是(值为164.04的例子)
1. Convert the value to a string "164.04"
2. Take the right most character "4" and convert to an integer 4
3. Increment the integer value by 1 to get 5
4. Take the characters in the string from step #1 except the last and then append
the integer from Step #3 as a string to get "164.05".
似乎在我的VB6程序中工作,但想知道是否有人有更好的想法。我也不认为我占了最后一位数是9。
更新:根据以下建议,最终为正数和负数以及整数和浮点数工作的内容如下:
Dim p As Integer
Dim numAsStr As String = num.ToString(fmt)
If numAsStr.IndexOf(".") = -1 Then
p = 0
Else
p = numAsStr.Length - numAsStr.IndexOf(".") - 1
End If
Dim result as Double = ((num* (10 ^ p) + 1.0) / (10 ^ p))
答案 0 :(得分:0)
以下是算法:
1.查找小数点(p)
2.将数字乘以10 ^ p,将其增加1,将其除以10 ^ p
Dim numAsStr As String = num.ToString()
Dim p As Integer = numAsStr.Length - numAsStr.IndexOf(".") - 1
Dim numInt as Integer = 10^p * num
Dim result as Double = ((10^p *num + 1.0) / 10^p).ToString()
答案 1 :(得分:0)
使用“ ON ERROR RESUME NEXT”构造解决此问题。