如何在C#中获得一个网格控制列,以显示带两位小数的价格?

如何在C#中获得一个网格控制列,以显示带两位小数的价格?,c#,C#,我试图在C#的网格控件中获得一列,以显示带有两个小数点的价格。我必须在两个地方这样做:一个是美元,另一个是各种欧洲货币,最后对每种货币都使用了不同的方法,但都有相同的问题。问题是,如果价格为空,该列将只显示货币符号。如果是整数(无小数),则表示价格和美元符号,但无小数。如果价格的变动系数为10(10美分、20美分等),则只显示小数点后的第一个点。它显示正确格式的唯一时间是当它有一个十进制,而第二个数字没有零(比如35美分)。举例如下: 如果没有调用价格,它只显示$,而不是$0.00 如果价格为1

我试图在C#的网格控件中获得一列,以显示带有两个小数点的价格。我必须在两个地方这样做:一个是美元,另一个是各种欧洲货币,最后对每种货币都使用了不同的方法,但都有相同的问题。问题是,如果价格为空,该列将只显示货币符号。如果是整数(无小数),则表示价格和美元符号,但无小数。如果价格的变动系数为10(10美分、20美分等),则只显示小数点后的第一个点。它显示正确格式的唯一时间是当它有一个十进制,而第二个数字没有零(比如35美分)。举例如下:

如果没有调用价格,它只显示$,而不是$0.00

如果价格为123,则显示的是123美元,而不是123.00美元

如果价格为123.30美元,则显示为123.3美元,而不是123.30美元

如果价格是123.35美元,它显示123.35美元,这是我想要的格式

对于美元,我让它在属性窗口的DisplayFormat属性下格式化数字,在该窗口中,它的格式为数值“$。##”

对于欧洲货币,我在从数据库调用数字的查询中对其进行了格式化。例如,如果货币是欧元,则使用查询的CASE语句中的这部分SQL代码格式化价格:

WHEN Currency_Type = 'EURO' THEN (CAST('€' AS varchar(2)) + CAST(Price AS varchar(9)))
除了获取价格的查询(即SQL),我还使用C#对程序的其余部分进行编程

有人知道如何让一个或两个显示器显示货币符号和价格到小数点后两位吗


更新:将#替换为0(美元),解决了问题。仍在努力让欧洲方面发挥作用。因为它使用了多种货币类型(欧元、英镑等),所以我使用查询来更改货币符号。请参见以下问题:-如果您需要有关特定货币格式的更多信息:@ZaelinGoodman和stackoverflow链接,看起来货币的格式已经正确了。至于另一个链接,则采用自定义数字格式,将#替换为0适用于美元,但不适用于欧洲货币