Преобразование десятичной дроби в метке в целое число - PullRequest
0 голосов
/ 29 марта 2011

В настоящее время использую VS2008, VB.NET, SQL.

У меня есть FormView из источника данных, который получает некоторые поля, которые хранятся как десятичные числа в базе данных SQL.

Язахват поля из FormView следующим образом:

Dim AvgTicketL As Label = CType(frmMerchantProfile.FindControl("F10Label"), Label) 

Мне нужно взять это значение и преобразовать его в целое число, а затем отправить его в API.У меня есть вызовы API, проверенные и работающие, но я получаю сообщение об ошибке, так как при получении этого значения API возвращает ошибку «Должно быть целым числом».

То, что я пробовал до сих пор:

Dim AvgTicketL As Label = CType(frmMerchantProfile.FindControl("F10Label"), Label)  
Dim AvgTicket1 As Integer      
AvgTicket1 = Double.Parse(AvgTicket.Text)  
Do something with AvgTicket1

Я также попытался округлить значение, затем преобразовать его и вызвать его - не повезло.

Проверка значения AvgTicket1 (запись в метку или ответ.Запись) показывает "100", где значение базы данных было 100,00.Но API все еще получает 100,00, по-видимому.Любой другой метод преобразования, в котором я попытался, сообщает об ошибках, что Метка не может быть преобразована в целое число.

Какими методами можно успешно преобразовать это значение в целое число из метки?

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

Название вашего вопроса и текст вашего вопроса указывают на две разные вещи.

Предполагая, что вы хотите знать, как безопасно преобразовать десятичное значение, полученное из базы данных, которое, по-видимому, является значением AvgTicketL, перед вызовом API вы должны сделать следующее:

Создать переменнуютипа данных Integer и используйте System.Int32.TryParse () для безопасного преобразования десятичного числа в целое.Затем передайте эту переменную.(Код идет)

Dim testInt as Integer = -1

If System.Int32.TryParse(AvgTicketL.Text, testInt) Then
      ' Do something with testInt - call the API using the value
Else 
   ' code to execute if the parse fails.
   ' This could be whatever you need the code to do if the value of AvgTicketL.Text can't be properly parsed into an Int value.
End If
0 голосов
/ 29 марта 2011

После некоторого дурачения вот что я смог сделать, чтобы заставить это работать ...

Я взял кое-что из того, что сказал Дэвид, а затем просто сделал простую настройку - я неЗнай, почему я не думал об этом раньше!

Dim AvgTicketL As Label = CType(frmMerchantProfile.FindControl("F10Label"), Label)
Dim AvgTicketI As Integer = "-1"

Я затемнил вторую переменную как int, затем

AvgTicketI = CInt(AvgTicketL.Text)

Оттуда я просто вызвал AvgTicketI в качестве переменной для передачи API.Работал!

Спасибо, Дэвид, за руководство!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...