"no overload for method “ToString” takes 1 arguments"

"no overload for method “ToString” takes 1 arguments"

我想将数据按原样转换为货币格式,但出现错误。

Faturamento.ValorNF = decimal.Parse(RsFaturamento.Fields["ValorTotal"].Value.ToString("#.##"));

错误信息: "no overload for method “ToString” takes 1 arguments"

我想知道我的代码有什么问题?

无论对象 Value 是什么类型,class 对其的定义都没有采用参数的 ToString() 重载。如果 Value 是集合中的对象类型,则需要将其 cast/convert 为一个字符串,然后将该字符串提供给 decimal 的 parse 方法。请注意,如果您将十进制对象分配给 ValorNF,那么 ToString("#.##") 并不重要,因为您始终可以在以后对其进行格式化以供显示。

也就是说,如果您想将小数位格式化为小数点后两位,我建议您使用标准格式字符串来执行此操作。下面将值解析为小数,然后使用 ToString 将其转换为字符串到小数点后 2 位:

decimal.Parse(RsFaturamento.Fields["ValorTotal"].Value.ToString()).ToString("N2", CultureInfo.InvariantCulture);

无论 Value 是什么类型,请确保它有一个 public override string ToString(){} 方法,该方法为您提供字符串表示形式。

那么你可以这样做:

decimal money = decimal.Parse(RsFaturamento.Fields["ValorTotal"].Value.ToString());

Faturamento.ValorNF = money.ToString("C"));