在沙特阿拉伯和美国之间转换 CultureInfo 货币
Converting CultureInfo currency between Saudi Arabia & US
我有类似的东西:
price_2.Text = CDbl(price_2.Text).ToString("C", current_culture)
Issue/Workflow:
假设起始价格是美元,那么假设 price_2.Text 是 5.99 美元。当按下按钮时,current_culture 将变为 ar-SA。所以它会将 ($5.99) 转换为 (5.99 ريال ),现在它是 (5.99 ريال ) 并且我将 current_culture 更改为 en-US,这将崩溃,因为 CDbl 无法在之后转换该符号5.99 美元到双人间。
我们如何从 CultureInfo 转换为货币有什么想法吗?
您可以使用 Decimal.TryParse()
overload that lets you to specify a NumberStyle and the CultureInfo 从中导出货币格式。
这允许解析方法理解如何解释提供的输入。
Dim numberStyle As NumberStyles = NumberStyles.Currency Or
NumberStyles.AllowCurrencySymbol Or
NumberStyles.AllowDecimalPoint Or
NumberStyles.AllowThousands
Dim CurrencyValue As Decimal
Dim arCInfo As New CultureInfo("ar-SA")
Dim usCInfo As New CultureInfo("en-US")
Dim InputType As String = If(price_2.Text.Contains("$"), "US", "AR")
Select Case InputType
Case "US"
If Decimal.TryParse(price_2.Text, numberStyle, usCInfo, CurrencyValue) Then
price_2.Text = CurrencyValue.ToString("C", arCInfo)
End If
Case "AR"
If Decimal.TryParse(price_2.Text, numberStyle, arCInfo, CurrencyValue) Then
price_2.Text = CurrencyValue.ToString("C", usCInfo)
End If
End Select
对全球化不是很熟悉,但这对我有用。只需在格式化之前获取数字,然后您就可以将区域性应用于数字本身。
Private dbl As Double
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dbl =CDbl(price_2.Text)
Dim current_culture As New CultureInfo("ar-SA")
price_2.Text = dbl.ToString("C", current_culture)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim current_culture As New CultureInfo("en-US")
price_2.Text = dbl.ToString("C", current_culture)
End Sub
我有类似的东西:
price_2.Text = CDbl(price_2.Text).ToString("C", current_culture)
Issue/Workflow:
假设起始价格是美元,那么假设 price_2.Text 是 5.99 美元。当按下按钮时,current_culture 将变为 ar-SA。所以它会将 ($5.99) 转换为 (5.99 ريال ),现在它是 (5.99 ريال ) 并且我将 current_culture 更改为 en-US,这将崩溃,因为 CDbl 无法在之后转换该符号5.99 美元到双人间。
我们如何从 CultureInfo 转换为货币有什么想法吗?
您可以使用 Decimal.TryParse()
overload that lets you to specify a NumberStyle and the CultureInfo 从中导出货币格式。
这允许解析方法理解如何解释提供的输入。
Dim numberStyle As NumberStyles = NumberStyles.Currency Or
NumberStyles.AllowCurrencySymbol Or
NumberStyles.AllowDecimalPoint Or
NumberStyles.AllowThousands
Dim CurrencyValue As Decimal
Dim arCInfo As New CultureInfo("ar-SA")
Dim usCInfo As New CultureInfo("en-US")
Dim InputType As String = If(price_2.Text.Contains("$"), "US", "AR")
Select Case InputType
Case "US"
If Decimal.TryParse(price_2.Text, numberStyle, usCInfo, CurrencyValue) Then
price_2.Text = CurrencyValue.ToString("C", arCInfo)
End If
Case "AR"
If Decimal.TryParse(price_2.Text, numberStyle, arCInfo, CurrencyValue) Then
price_2.Text = CurrencyValue.ToString("C", usCInfo)
End If
End Select
对全球化不是很熟悉,但这对我有用。只需在格式化之前获取数字,然后您就可以将区域性应用于数字本身。
Private dbl As Double
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dbl =CDbl(price_2.Text)
Dim current_culture As New CultureInfo("ar-SA")
price_2.Text = dbl.ToString("C", current_culture)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim current_culture As New CultureInfo("en-US")
price_2.Text = dbl.ToString("C", current_culture)
End Sub