增加数字的最后一位数

时间:2014-01-21 19:55:47

标签: vb.net numbers format increment significant-digits

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))

2 个答案:

答案 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”构造解决此问题。