如何格式化数据库中的货币

时间:2013-06-13 19:06:42

标签: c# asp.net-mvc-4 razor string-formatting currency

目标

我想从数据库中正确格式化货币。

问题

我用以下格式从数据库格式化货币:

@String.Format("{0:C}", @Model["MinProductPrice"])

问题是:150必须是1,50,而不是150,00 - 而且此格式化正在执行此操作。

我的案例的格式类型是什么?

3 个答案:

答案 0 :(得分:2)

您可能希望先将数字除以100(请记住更改类型),因此150变为1.50,根据区域设置转换为"1,50"

@String.Format("{0:C}", @Model["MinProductPrice"] / 100.0m)

答案 1 :(得分:2)

我会将我的意见扩展到答案,我认为这更合适。我认为您应该将列类型更改为money或decimal类型,以通过使列的使用更加明显来防止错误。您在页面上的输出将是正确的,并且不需要任何“幻数”来使其正确打印出来。

只需注意,但您也可以打印货币字符串:

@Model["MinProductPrice"].ToString("C")

答案 2 :(得分:-1)

我将铸造责任归因于数据库。我正在使用MySQL,查询是这样的:

ROUND(CAST(MIN(`map`.`Product_Price`) AS DECIMAL)/100,2) as `minProductPrice`

无论如何,我要感谢jlafaycsharpler关于他们的答案 - 他们非常有帮助并且对我有用。

相关问题