我正在处理的应用程序上有一个DAL,并且该类返回带有十进制数据类型的对象。我在应用程序前端显示某些值时遇到问题,因为它们是货币值。我已经看到了一些类似的问题,包括this one,它与我的问题非常相似,但没有任何内容与数据类型保持小数的情况相符。
首先问题是值被舍入,我通过编辑SP在SQL中解决了这个问题。现在值正确地通过,但我没有看到当值为“18.2”时强制第二个小数位的选项,例如,它应该显示“18.20”
更大的问题是DAL将这些值存储在列表中,然后列表绑定到DevExpress ASP网格。我使用DX格式化了值并且它没有影响:
<dx:GridViewDataTextColumn FieldName="TotalAmountDue" VisibleIndex="5" Width="10%">
<PropertiesTextEdit DisplayFormatString="#,###.##" />
</dx:GridViewDataTextColumn>
这里最好的方法是什么?
答案 0 :(得分:1)
为什么不试试String.Format
?
它的工作原理如下:
decimal yourPrice=GetPriceFromDb(); //50.2 for example
txtYourPrice.Text = string.Format("{0:0.00}", Math.Round(yourPrice, 2));
txtYourPrice.Text
中显示的结果将为50.20
答案 1 :(得分:1)
如果你有可变长度的数字,但想要千位分隔符,并且你想在小数分隔符之前强制至少一个数字,在它之后强制2,请使用:
#,0.00
实施例
.1
变为0.10
18.2
变为18.20
99
变为99.00
1234.1
beomes 1,234.10
这将舍入到最接近的小数位,因此0.99991
将显示为1.00