title: Reading cell value with applied Text formatting with OpenXML
body: <p>I am trying to read Excel Sheet, that contains cells with Text formatting.</p>
  <p>Some one of columns has values <code>1</code>, <code>1.1</code>, <code>1.2</code> and etc.</p>
  <p>In Excel all of these values look good, in cells with Text formatting - <code>1</code>, <code>1.1</code>, <code>1.2</code>.</p>
  <p>But when I read that cells with OpenXML, I got values <code>1</code>, <code>1.1000000000000001</code>, <code>1.2</code> - some one of them has decimal parts.</p>
  <p>OKay, I checked xl\worksheets\sheet1.xml in *.xlsx file and I see, that really contains value <code>1.1000000000000001</code></p>
  <pre><code>&lt;row r=&quot;3&quot; spans=&quot;1:20&quot; ht=&quot;15&quot; x14ac:dyDescent=&quot;0.25&quot;&gt;
              &lt;c r=&quot;A3&quot; s=&quot;2&quot;&gt;
                  &lt;v&gt;1.1000000000000001&lt;/v&gt;
              &lt;/c&gt;
  </code></pre>
  <p>My code is:</p>
  <pre><code> List&lt;List&lt;string&gt;&gt; rows = new List&lt;List&lt;string&gt;&gt;();
  
              List&lt;string&gt; cols;
  
              spreadsheetDocument = SpreadsheetDocument.Open(excelFilePath, false);
  
              WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
              WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
              SheetData sheetData = worksheetPart.Worksheet.Elements&lt;SheetData&gt;().First();
  
              SharedStringTablePart sstpart = workbookPart.GetPartsOfType&lt;SharedStringTablePart&gt;().First();
              SharedStringTable sst = sstpart.SharedStringTable;
  
              foreach (Row r in sheetData.Elements&lt;Row&gt;())
              {
                  cols = new List&lt;string&gt;();
                  foreach (Cell c in r.Elements&lt;Cell&gt;())
                  {
                      if (c.DataType != null &amp;&amp; c.DataType == CellValues.SharedString)
                      {
                          int ssid = int.Parse(c.CellValue.Text);
                          string str = sst.ChildElements[ssid].InnerText;
                          cols.Add(str);
                      }
                      else
                      {
                          cols.Add(c.CellValue?.InnerText);
                      }
                  }
                  rows.Add(cols);
              }
  
              spreadsheetDocument.Close();
  </code></pre>
  <p>How shall I get correct value from such cells? For example, <code>1.1</code>, but not <code>1.1000000000000001</code>.</p>