首页 > 解决方案 > 如何在 C# 中获取网格控件列以显示带两位小数的价格?

问题描述

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

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

如果价格为 123,则显示 $123 而不是$123.00

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

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

对于美元,我在“属性”窗口的“显示格式”属性下将数字格式化为Numeric "$#.##"

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

WHEN Currency_Type = 'EURO' THEN (CAST('€' AS varchar(2)) + CAST(Price AS varchar(9)))

在获取价格的查询(即 SQL)之外,我使用 C# 对程序的其余部分进行编程。

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

更新:用美元用 0 替换 # 解决了这个问题。仍在努力让欧洲方面发挥作用。这有点困难,因为它使用多种货币类型(欧元、英镑等),这就是我使用查询来更改货币符号的原因。

标签: c#

解决方案


推荐阅读