gpt4 book ai didi

asp.net - 更改货币格式

转载 作者:行者123 更新时间:2023-12-04 04:55:36 25 4
gpt4 key购买 nike

我有一个应包含货币的字段,根据我的地区是印度尼西亚,即 IDR 或 Rp。
我用 string.format 构建它像这样:

 Dim price As Single = Single.Parse(Convert.ToSingle(lblAmountGV.Text))
lblAmount.Text = String.Format("{0,C}", price)

但它给了我一个美元符号。我更改代码:
 lblAmount.Text = String.Format("Rp{0}", price)

但我没有收到 dot (.)Comma(,) .所以我再次使用 FormatCurrency 更改代码:
 lblAmount.Text = FormatCurrency(lblAmountGV.Text, , , TriState.True, TriState.True)

但它仍然给我一个美元符号,后来我找到了如何更改 CultureInfo :

按进口:
Imports System.Globalization

在我的代码上:
 Dim culture = CultureInfo.GetCultureInfo(" id-ID")
Dim format = DirectCast(culture.NumberFormat.Clone(), NumberFormatInfo)
format.CurrencySymbol = "Rp."
var number = Decimal.Parse(lblAmountGV.Text, NumberStyles.Currency, format);

lblAmount.Text = number

但它仍然给我一个 $标志,如何更改 $以编程方式?

最佳答案

我发现您发布的内容存在一些问题-

这条线不正确

String.Format("{0,C}", price)

您需要使用冒号来添加其他格式参数。如果要使用小数位格式化货币,则还需要指示小数位数。它应该是这样的
String.Format("{0:C2}", price)

这行有一个额外的空间,导致它失败并返回 CultureNotFoundException
CultureInfo.GetCultureInfo(" id-ID")

应该是
CultureInfo.GetCultureInfo("id-ID")

这段代码对我有用:
Dim culture As CultureInfo = CultureInfo.GetCultureInfo("id-ID")
Dim price As Double = 10.05

Dim result As String = String.Format(culture, "{0:C2}", price)

你可以看到它在行动 here

如果您熟悉 LINQPad ,您可以将以下内容粘贴到 LINQPad 中并查看不带美元符号的正确格式 -
String.Format(CultureInfo.GetCultureInfo("id-ID"), "{0:C2}", 10.05).Dump()

关于asp.net - 更改货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com