2009-11-13 19 views
6
With datagridview.Columns("PricePerUnit") 
    .ValueType = Type.GetType("System.Decimal") 
    .DefaultCellStyle.Format = "C" 
End With 

指定DefaultCellStyle.Format值数据表被绑定到在上面的代码中的在DataGridView和 如果我只用一个值5到列“PricePerUnit” 添加行将示出百分比为$ 5.00在DataGridView列显示通过在datagridviewcolum

同样地,我想出现像如果我只是一个价值五个附加行到列“DiscountPercentage”

应该显示为5.00%

我需要一个字符串值来分配给DefaultCellStyle.Format来实现这一点。

如果我使用DefaultCellStyle.Format="P"它会自动倍乘的是100,因此 为5输入它显示为500.00%,而不是5.00%

任何想法?


解决

DTB帮我做这个(感谢他)

number.ToString("0.00\%")得到十进制数与2个的十进制整数

回答

9

看来你需要一个Custom Numeric Format String在这里。

在C#:

12m.ToString("0\\%"); // returns "12%" 

所以这应该做的伎俩:

pricePerUnitColumn.DefaultCellStyle.Format = "0\\%"; 
+1

的值才会更新相信我,你什么都不是短缺的天才它运作良好 和我用于也显示2小数之后像这样Number.ToString(“0.00 \%”) – Ramji 2009-11-13 22:46:24

0

沿为什么不只是增加值0.05,而不是5?或者这不是一个选择?

+0

数据网格视图仅用于显示,数据库是从数据表 – Ramji 2009-11-13 22:36:11