Vb.net 使用货币符号计算值

Vb.net 使用货币符号计算值,vb.net,visual-studio,Vb.net,Visual Studio,我主要关注的是用额外的货币符号(£和/Hr)计算最终值,所以我想问你的问题是,是否有办法将编码主要集中在“20.00”,但是,如果您确实不想/无法使用内置函数进行货币或时间格式设置,并且如果您的数据总是使用相同的格式(例如,货币符号+值+每小时,但无论如何是“forecastable”),仍然使用货币sybmols显示最终输出,然后,您可以将以下内容添加到项目中: 字符串->数字函数 要从货币符号和“每小时”符号中“清除”您的值,从而以双精度类型返回值: Case "Labour"

我主要关注的是用额外的货币符号(£和/Hr)计算最终值,所以我想问你的问题是,是否有办法将编码主要集中在“20.00”,但是,如果您确实不想/无法使用内置函数进行货币或时间格式设置,并且如果您的数据总是使用相同的格式(例如,货币符号+
+
每小时
,但无论如何是“forecastable”),仍然使用货币sybmols显示最终输出,然后,您可以将以下内容添加到项目中:

字符串->数字函数 要从货币符号和“每小时”符号中“清除”您的值,从而以双精度类型返回值:

Case "Labour"
            TxtBUP1.Text = "£" & "20.00" & "/Hr"

Unitcost = Val(TxtBUP1.Text) * Val(CBQty1.Text)
    TxtBCost1.Text = Str(Unitcost)
    'Individual Cost [Value + Qty]
数字->字符串函数用于重新写入货币符号和末尾的“每小时”:

Public Function StringToNumber(ByVal stringValue As String) As Double

    stringValue = stringValue.Replace("£", "")
    stringValue = stringValue.Replace("/Hr", "")
    Convert.ToDouble(stringValue)
    Return stringValue

End Function
这样,只需使用这两个函数即可执行所需的所有操作,这两个函数允许您随意转换数据点(用于代码):

Public Function NumberToString(ByVal myValue As Double) As String

    Return "£" & myValue & "/Hr"

End Function
如果您有诸如“货币/价值/每小时”之类的自定义值,这就是您的想法。我可以让您管理不同货币符号或“每小时”的不同时间度量可能带来的复杂性

删除旧版VB6内容(
Val
Str
),并使用内置的.NET函数和格式。而且有大量的信息。
Public Sub yourProcedure()

    Dim myString As String : myString = "£20.00/Hr"
    MsgBox("If I add 10 GBP per hour, the hourly pay will be " & NumberToString(StringToNumber(myString) + 10))

End Sub