我正在使用SpreadsheetGear,我想将列的格式设置为%。目前我正在使用以下代码:
worksheet.Cells[0, index].EntireColumn.NumberFormat = @"##0.00\%;[Red](##0.00\%)";
以上代码应用格式转换: 6 = 6.00% 6.02 = 6.02% .02 = .02%
但问题是当我使用这个值并执行数学运算时,excel会考虑实际值。示例:如果一个单元格显示为20.00%而我将其乘以10则得到200.00。
我想要的是:执行任何数字操作时&列类型定义为%system应该将值除以100,然后它应该执行opeartion。
所以,如果我多了24.00%与10,它应该给我.24。
谢谢
答案 0 :(得分:1)
如果转义%(\%),Excel只会添加%并且不会调整小数。例如,以下代码
//with escape
cells[0, 0].NumberFormat = @"##0.00\%;[Red](##0.00\%)";
cells[0, 0].Value = 0.24;
//with no escape
cells[1, 0].NumberFormat = @"##0.00%;[Red](##0.00)%";
cells[1, 0].Value = 0.24;
//with no formatting
cells[2, 0].Value = 0.24;
cells[0, 1].FormulaR1C1 = "=RC[-1]*100";
cells[1, 1].FormulaR1C1 = "=RC[-1]*100";
cells[2, 1].FormulaR1C1 = "=RC[-1]*100";
将产生
0.24% 24 //with escape
24.00% 24 //with no escape
0.24 24 //with no formatting
答案 1 :(得分:1)
你的问题是一个数学问题。
24%x 10 = 240%
240%= 2.4
“所以如果我多了24.00%和10,它应该给我.24”
如果你要做的只是显示不同的输出,那么系统应该解释乘以10作为删除%格式。这是因为24%和.24是相同的数字。您基本上是要求机器错误地进行乘法运算。如果这是您的客户真正想要的,这是好的。