我正在寻找一个选项,如果我在我的c#代码中进行dataconversion时可以将可以为空的十进制值转换为货币。我已经看到了关于转换的多个问题,但我没有得到我想要完成的任务。到目前为止,我已完成了下面的操作,它在moneyvalue
下给了我红色下划线。当我盘旋它时,它抱怨说“不能从字符串转换为十进制?”
decimal? value = DataConversion.GetNullableDecimal(row["Price"]);
string moneyvalue= String.Format("{0:c}", value);
results.Add(new ProductSearchResult(
product: product,
msrp: moneyvalue,
vendornumber: DataConversion.GetString(row["vendor"])
));
请建议。
答案 0 :(得分:0)
如果您的msrp类型为十进制,则为:
if(value.HasValue){
results.Add(new ProductSearchResult(
product: product,
msrp: value.Value
));
}
如果您的msrp类型为十进制?,那么只需确定该值:
results.Add(new ProductSearchResult(
product: product,
msrp: value
));
格式化为$应该在显示值的地方完成。如果需要小数,您的结构 ProductSearchResult 将不接受货币。