2016-03-04 1484 views
1

我已經將值導出到c#中的csv文件。如何在導出到csv時保留小數精度並使用excel打開

對於每個值,csv文件都有5個小數位,但是當用excel打開時,每個小數位數減少到2。

在excel中打開csv時,是否存在一種以編程方式確保保留小數位的方法?

var nFI = new NumberFormatInfo(); 

nFI.NumberDecimalDigits = precision; 
line += (CsvEscape(((decimal)dr[colName]).ToString("N", nFI)) + ","); 

這就是小數如何導出到csv。

+0

Excel是當它涉及到的CSV文件只是普通惡。我們有一個工具將gtin號碼(13位數字)輸出到csv中。在Excel中打開時,它會自動將其表示更改爲科學,用零替換許多數字。在excel中查看csv時,切勿保存。 – CSharpie

+0

解決!看下面的答案 –

回答

1

輸出到csv文件時,爲了保留小數位,請用雙引號括住該值並以'='爲前綴。 (打擾的代碼,其仍然以原型形式)

line += ("=" + '"' (((decimal)dr[colName]).ToString("N",nFI).Replace(",",""))+ '"' + ","); 

該輸出作爲=「63000.00000」,

0

您是否使用格式提供程序(NumberFormatInfo)用於任何其他目的?如果您忽略ToString()中的格式化參數,它應該按原樣輸出。

+0

這就是我試着從頭開始,但因爲有5個小數位的4個是0,所以它就擺脫了它們。客戶要求說明他們需要在那裏零。 –

+0

嘗試使用'ToString(「0.000000」);' - 這將使用零不在那裏的任何數字。所以「0」變爲0.000000,1.1變爲1.100000。 0.5變爲0.500000等 本頁有參考:https://msdn.microsoft.com/en-us/library/0c899ak8.aspx – Parker

+0

這似乎沒有工作,沒有小數的地方,除非地方更多比如0 –

相關問題