我使用OpenXML SDK來解析.xlsx文件。OpenXml SDK爲大數返回科學值
當我在Excel文件中有非常大的數字時,即344230125015305000
,OpenXML將它轉換爲科學版本,即3.4423012501530502E+17
。這很奇怪,因爲「完整」值存在於Excel文件中,這意味着它沒有被截斷,並且它應該在Cell對象中的某個地方可用。
任何建議者居多。
UPDATE:
@AlexeiLevenkov建議我看看XML文件,並將其顯示在值存儲在科學的形式。有趣的是,Excel仍然顯示完整的表單。
實例:
344110425109461000 -> 3.4411042510946099E+17
344230125015305000 -> 3.4423012501530502E+17
344770124807291000 -> 3.4477012480729101E+17
344770224905172000 -> 3.4477022490517197E+17
試圖隱蔽回滿形式,即
(long)Double.Parse("3.4411042510946099E+17", CultureInfo.InvariantCulture)
返回一個不正確的值(344110425109460992
對於上面的片段)。
向該值添加單引號前綴可修復問題(另一個指示器,表示完整表單值隱藏在某處),但這不是此方案的解決方案,因爲我嘗試構建自動處理的用戶上傳文件。
您的科學記數法版本具有比您在Excel中讀取的**更高的**精確度? – 2014-09-30 14:26:33
據我所知,它有一個較低的精度?嘗試轉換它會返回一個不同的數字,即'(long)Double.Parse(「3.4411042510946099E + 17」,CultureInfo.InvariantCulture)'是'344110425109460992'。 – 2014-09-30 14:36:55
XML是文本文件...首先檢查打開並查看內部,看看是否確實值您正在尋找。 – 2014-09-30 14:40:18