gpt4 book ai didi

C# 将货币字符串转换为 Double

转载 作者:行者123 更新时间:2023-11-30 19:26:49 25 4
gpt4 key购买 nike

我对 C# 和 .NET Framework 有基本的了解,我接到了构建 POS(销售点)屏幕的任务,目前我遇到了一个小问题,试图将与货币相关的字符串转换回一个双。

我在屏幕上有两个列表框和几个产品按钮,这些按钮是使用提供给我们的库类填充的(本质上表明我们可以使用组件)

One list box holds the product name while the other holds the price of that product, when a product button is selected it takes the product name from the buttons text and within its tag there is the price which is added to the list box价格。

我的问题是我想在列表框中将价格显示为货币,它也显示所有“0”我可以通过执行以下任一操作来做到这一点

value.ToString("C");
string.Format("{0:C}",value);

或使用转换等

虽然因为我已经这样做了,如果我想通过双击从列表中删除一个项目,我需要从总价中扣除价格,所以我需要转换回双倍,尽管因为它是当前格式我得到尝试执行该操作时出现错误我环顾四周,但似乎无法找到它,我能看到的唯一选择就是保留字符串值,而不是将其转换为货币格式。

the ERROR: {"Input string was not in a correct format."}

代码片段

 private void panelBtns_Click(object sender, EventArgs e)
{
Button panelBtn = (Button)sender;

lstProduct.Items.Add(panelBtn.Text);

double price = Convert.ToDouble(panelBtn.Tag);

>>CURRENCY FORMAT>> lstPrice.Items.Add(string.Format("{0:C}",price));

dblTotal = dblTotal + Convert.ToDouble(panelBtn.Tag);

lblTotal.Text = string.Format("{0:C}", dblTotal);

lblOutput.Text = "0";

lblOutput.Tag = "0";
}//End Panel Buttons



private void lstProduct_DoubleClick(object sender, EventArgs e)
{
int index = lstProduct.SelectedIndex;

lstPrice.SelectedIndex = lstProduct.SelectedIndex ;

>> ERROR HERE >> double price = Convert.ToDouble(lstPrice.GetItemText(lstPrice.SelectedItem));

dblTotal = dblTotal - price;

lstProduct.Items.RemoveAt(index);

lstPrice.Items.RemoveAt(index);

lblTotal.Text = string.Format("{0:C}", dblTotal);

}

谁知道我怎么可能解决这个问题,我想创建一个不可见的列表来存储标签的实际值,以便我以后可以使用它,但是还有其他方法吗?

注意:我也知道对货币使用 double 不是很可靠

最佳答案

解析 C 格式的最简单方法可能是使用

Double.Parse(text, System.Globalization.NumberStyles.Currency)

当然,您总是希望使用 Decimal 来处理货币,而 Decimal.Parse 采用相同的参数。

不过,在这种情况下,您可能希望将内部数值与其文本表示一起存储,而不是先转换为字符串,然后再解析回数字。

关于C# 将货币字符串转换为 Double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913465/

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