如何从数据库格式化货币

本文关键字:格式化 货币 数据库 | 更新日期: 2023-09-27 18:18:30

目标

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

我正在格式化数据库中的货币:

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

问题是:150必须是1,50,而不是150,00 -而这种格式正在这样做。

我的情况下正确的格式类型是什么?

如何从数据库格式化货币

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

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

我将把我的评论扩展成一个答案,我认为这样更合适。我认为您应该将列类型更改为货币或十进制类型,以便通过更明显地使用列来防止错误。您在页面上的输出将是正确的,并且不需要任何"幻数"来使其正确打印。

只是一个提示,但你也可以打印一个货币字符串,这样做:

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

我把cast的责任归于数据库。我使用MySQL,查询是这样的:

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

无论如何,我要感谢jlafay和charsharpler的回答,他们非常有帮助,对我很有帮助。