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