0

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

2 回答 2

0

这是算法:

1.查找小数点(p)

2.将数字乘以10^p,加一,再除以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()
于 2014-01-21T20:04:25.557 回答
0

对这个问题使用“ON ERROR RESUME NEXT”构造。

于 2020-07-09T11:02:13.323 回答