Asp.net mvc 3 导出到excel时,Math.Round()不起作用

Asp.net mvc 3 导出到excel时,Math.Round()不起作用,asp.net-mvc-3,excel,razor,Asp.net Mvc 3,Excel,Razor,在导出到excel的视图中,显示此变量的值 VeryGoodPercentage = subQst.Question.ReponseList.Where( r => r.ReponseValeur == 4 && Model.SelectedGroupContactList.Select(c => c.ContaId).Contains(r.ContaId.Value) ).ToList().Co

在导出到excel的视图中,显示此变量的值

VeryGoodPercentage = subQst.Question.ReponseList.Where(
            r => r.ReponseValeur == 4 &&
            Model.SelectedGroupContactList.Select(c => c.ContaId).Contains(r.ContaId.Value)
            ).ToList().Count() * 100
            /
            denominator;
我是这样展示的

<td class=xl76 align=right width=69 style='width:52pt'>@Math.Round(VeryGoodPercentage)%</td>
如上所述:

36%和0.36应该是相同的-只是excel没有将其作为一个百分比,或者确实将36解释为一个百分比-这将导致0.36作为一个数字

我不认为这是一个舍入问题,这是格式化或输入或两者兼而有之

根据什么值
@Math.Round(VeryGoodPercentage)
生成-0.xx或xx.xx-带%符号或不带%,excel将对此进行不同的解释

一些例子:

=0.36将导致数值为0.36

=36将导致36个数字

到目前为止没有什么意外,但现在:

=0.36%将导致0.0036

=36%将导致0.36

但这些都是公式,现在如果您只在空的“默认”格式单元格上使用F2并写入其中:

36%->您可以将其格式化为百分比,这将显示为36%,但如果您将其格式化为“默认”,那么它将是数字0.36

0.36%->将表现为36%

希望这能澄清更多,而不是混淆;)祝你好运

编辑:为了使这一点更加模糊,在我的国家,
是那些单词的符号,所以你必须使用

编辑:使用VBA,您可以将列或单元格设置为使用特定的数字格式,如下所示:

Table1.Columns("A").NumberFormat = "0.00%"

我终于在这里找到了解决办法

只需将此css参数添加到标记:

mso-number-format:Percent;

你似乎在谈论一些导出的Excel文件-你能展示一下你用来生成这个文件的相关代码吗?我编辑了这篇文章,我把那一行放在我的视图中36%,0.36将是相同的-只是Excel没有把它作为一个百分比;我不认为这是一个舍入问题。同意Jook。这是Excel格式的一个问题,它与Math.Round函数完全无关。感谢您的回复,但是有没有一种方法可以使Excel以百分比的形式格式化它,而不必从Excel本身进行格式化?
mso-number-format:Percent;