Formatting 使用SpreadsheetGear将列的数字格式设置为百分比

Formatting 使用SpreadsheetGear将列的数字格式设置为百分比,formatting,excel-formula,excel-2010,spreadsheetgear,Formatting,Excel Formula,Excel 2010,Spreadsheetgear,我正在使用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.

我正在使用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,然后执行运算

所以如果我用10乘以24.00%,它应该是24

谢谢

如果您转义了%(\%),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
如果转义%(\%),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

你的问题是一道数学题

24%x10=240%

240%=2.4

“因此,如果我将24.00%乘以10,则应为0.24”


如果您只是想显示不同的输出,那么系统应该将乘以10解释为删除%格式。这是因为24%和.24是相同的数字。你基本上是要求机器错误地进行乘法运算。如果这是你的客户真正想要的,那就好了

你的问题是一道数学题

24%x10=240%

240%=2.4

“因此,如果我将24.00%乘以10,则应为0.24”


如果您只是想显示不同的输出,那么系统应该将乘以10解释为删除%格式。这是因为24%和.24是相同的数字。你基本上是要求机器错误地进行乘法运算。如果这是你的客户真正想要的,那就好了

例如:谢谢你的回复。您的解决方案解决了一半的问题。虽然它执行正确的计算,但如果我不将它显示的%符号转义为24.00%,这是我不希望看到的。您希望如何显示。24?我希望将24显示为24.00%,但当执行乘法运算时,它应该乘以0.24。因此,如果列a1=24.00%和b1=10,我乘以a1*b1,应该得到2.4(.24*10),你不能通过格式化来更改值。如果您使用0.24作为您的值,那么上面的代码应该执行您所描述的操作。0.24等于24.00%。如果你用24作为你的价值,这是没有意义的。你不能把24乘以10得到2.4。谢谢你,丹尼尔。我知道这没有多大意义。但这就是我被要求做的。你能提出建议并解决问题吗?谢谢你的回复。您的解决方案解决了一半的问题。虽然它执行正确的计算,但如果我不将它显示的%符号转义为24.00%,这是我不希望看到的。您希望如何显示。24?我希望将24显示为24.00%,但当执行乘法运算时,它应该乘以0.24。因此,如果列a1=24.00%和b1=10,我乘以a1*b1,应该得到2.4(.24*10),你不能通过格式化来更改值。如果您使用0.24作为您的值,那么上面的代码应该执行您所描述的操作。0.24等于24.00%。如果你用24作为你的价值,这是没有意义的。你不能把24乘以10得到2.4。谢谢你,丹尼尔。我知道这没有多大意义。但这就是我被要求做的。你能不能提出建议和解决办法。