如何在进行Dataconversion时将C#中的十进制值转换为美元货币值?

时间:2017-05-25 16:29:32

标签: c# currency data-conversion

我正在寻找一个选项,如果我在我的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"])
));

请建议。

1 个答案:

答案 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 将不接受货币。