2014-02-06 32 views
0

我试图打印出double以表示excel。在我的GUI中,打印出的数字正确。将小数点后的零打印到excel中

但是,当我将数字写入Excel文件时,数字在小数点后出现零。例如,在我的GUI中,编号1.10正确打印出来,但在excel中打印出1.1

double foo = 1.10; 
writeline(foo.ToString("F2")); 

我试过String.Format("{0:0.00}", foo.ToString("F2"));没有解决这个问题。我很确定问题是当数字进入excel时,excel会在小数点后截断所有的零。有没有办法发送excel消息打印出小数点后的两个地方?

我正在致力于某人elses打开和关闭excel文件的代码。他们使用File.CreateStreamWriter创建和打开Excel文件

+3

你如何“发送到excel”? – Tarec

回答

2
String.Format("{0:0.00}", foo.ToString("F2")); 

将无法​​正常工作,因为你想格式化的东西,这是转换成字符串了。 使用直接变量 - 你富应返回一个数值,然后你可以使用它像这样(举例):

String.Format("{0:0.00}", foo.GetDouble("F2")); 

换句话说:

String.Format("{0:0.00}", "1.10"); //wrong 
String.Format("{0:0.00}", 1.10d);  //correct 
+0

它仍然打印出1.1而不是1.10在excel中 – Aaron

+0

它不是一个与c#相关的问题。将excel文件中的列过滤为四舍五入的零。您正在发送正确的值,但是您没有设置正确的列属性。 – Tarec

+0

我想,有没有办法将信息发送到excel打印出.00? – Aaron

0

我已经对于一个简单的问题看到了太多复杂的答案,我也遇到了同样的问题,这就是为什么我来到这里但我没有得到任何合理的答案。我想通了,只需突出显示该列,右键单击它 - 格式化单元格-----会出现一个对话框,在类别---数字下,然后添加任意数量的小数位。