c# - 如何在 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 替换 # 解决了这个问题。仍在努力让欧洲方面发挥作用。这有点困难,因为它使用多种货币类型(欧元、英镑等),这就是我使用查询来更改货币符号的原因。
解决方案
推荐阅读
- php - 使用 PHP 使用 LIMIT 调用参数化 MariaDB SP 时出现问题
- reactjs - 如何保护 Firebase 托管中的第三方 API 密钥?
- c# - 为什么 RabbitMQ 连接在 Linux 上失败,但在 Windows 上有效?
- javascript - 将 HTML 转换为 PDFmake 语法
- javascript - How To disable zoom in/out webview but increase font-size on Pinch
- java - 如何从动态 JCheckBox 中获取价值?
- email - DMARC 失败仅适用于linkedin
- css - 如何使用 id 属性以角度导入样式表?
- regex - 如何从php数组中grep值
- java - json parsing with jackson