0

我遇到了一个非常简单的问题。基本上我正在使用一个字符串,例如“$30.00”,然后删除“$”,然后尝试将其转换为小数。尽管我不断收到错误消息,指出字符串的格式不正确。不知道从这里做什么......

string freightstart = PostFregihtAmount.ToString();

freightstart = freightstart.TrimStart('$');

decimal freight = Decimal.Parse(freightstart);

根据 Alex Skiba 在评论中的建议,我尝试了以下方法:

Decimal.Parse(freightstart, System.Globalization.CultureInfo.InvariantCulture);

这是我在调试时收到的错误:

在此处输入图像描述

这是我们现场 CRM 2011 系统的插件,我必须在报价单上引用的一些字段是货币字段。当我查询数据时,它们以字符串格式返回,因此示例为“$30.00”。长话短说,我需要将其转换为十进制,以便我可以进行税务解决方案。

4

1 回答 1

1

尝试在解析字符串时显式允许小数点以及货币符号(然后您不必$在解析之前修剪):

var freight = Decimal.Parse("$30.00",
              NumberStyles.AllowCurrencySymbol | NumberStyles.AllowDecimalPoint);
于 2014-06-24T18:16:11.583 回答