2016-05-10 2 views
0

Я работаю, чтобы найти позицию первой ни ейся цифру после десятичной точкинайти первую ненулевую цифру после десятичной точки с помощью VB.net

До сих пор мне удалось найти число десятичного цифры с использованием

Dim value As Single = 2.0533 
Dim numberOfdecimaldigits As Integer = value.ToString().Substring(value.ToString().IndexOf(".") + 1).Length 
MessageBox.Show(numberOfdecimaldigits) 

Если у меня 4.0342, то я ищу, чтобы получить 2 для позиции 3 после десятичного значения. То, что я хочу делать с этими данными, состоит в том, чтобы добавить 2 к целому числу в зависимости от местоположения нулевой цифры. Например: для 4.0342, я хочу, чтобы система добавила к нему 0.02. Если это 5.00784, то я хочу добавить к нему 0.002.

Есть ли способ узнать положение первой цифры без нуля после десятичной точки?

Спасибо заранее

ответ

2

я настоятельно рекомендую не использовать строки здесь - вы выполняете численный алгоритм, это более прямой и более эффективно работать на число, используя цифровую логику:

value = value - Math.Floor(value) ' Get rid of integer digits 
Dim position = 0 

While value > 0 AndAlso Math.Floor(value) = 0 
    value = value * 10 
    position += 1 
End While 

If value = 0 Then Throw New Exception(…) 
Return position 
+0

Спасибо очень для решения. Это сработало. –

+0

У меня только еще один вопрос. Я использую этот Dim a As Single = 7245.00758 MessageBox.Show (a), и когда я вижу сообщение, оно говорит 7245.008. Почему это не 7245.00758? Спасибо –

+0

@SatvirSingh Это нормально. Причина здесь: http://stackoverflow.com/q/588004/1968 –

Смежные вопросы