【问题标题】:Converting Decimal In a Label to an Integer将标签中的小数转换为整数
【发布时间】:2011-07-24 20:02:44
【问题描述】:

目前使用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 的值(将其写入标签或 Response.Write)显示“100”,其中数据库值为 100.00。但显然,API 仍在获得 100.00。我尝试过的任何其他转换方法都会显示无法将标签转换为整数的错误。

有哪些方法可以成功地将这个值从标签转换为整数?

【问题讨论】:

    标签: asp.net vb.net type-conversion


    【解决方案1】:

    经过一番鬼混之后,我能够做些什么来让它工作......

    我接受了大卫所说的一些内容,然后只是做了一个简单的调整——我不知道为什么我之前没有想到!

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

    我将第二个变量调暗为 int,然后

    AvgTicketI = CInt(AvgTicketL.Text)
    

    从那里,我只是调用 AvgTicketI 作为要传递给 API 的变量。成功了!

    感谢大卫,您的指导!

    【讨论】:

      【解决方案2】:

      问题的标题和问题的文本指向两个不同的东西。

      假设您想知道如何安全地转换从数据库检索到的十进制值,大概是 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
      

      【讨论】:

      • 谢谢大卫!这将在 If Else 语句之外工作,对吗?例如,在调用 API 之前我有更多的数据要组装,所以我只需要将这个转换后的值“保持”到某个东西,然后稍后再调用它。另外 - 为什么在声明变量时使用 (-1) 值?
      • 在尝试您制定解决方案的方式时,我得到的值为 0 - 所以我假设 Parse 失败。
      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 2020-04-21
      • 2016-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2013-02-01
      相关资源
      最近更新 更多