私はExcelシートから値8.03をコピーし、以下のコードを使用してクリップボードからC#でその値を読み取っています。出てくる値は8.0299999999999994であり、8.03ではありません。以下のようにxmlを見ると、値は8.0299999999999994です。xlsxのzipファイルにあるsheet1.xmlの値も8.02999999999999994です。しかし、値をメモ帳にコピーすると、値は8.03でコピーされます。メモ帳のように値を8.03としてコピーするにはどうすればよいですか?
DataObject retrievedData = Clipboard.GetDataObject() as DataObject;
if (retrievedData.GetDataPresent("XML Spreadsheet"))
{
var sourceDataReader = new XmlTextReader(retrievedData.GetData("XML Spreadsheet") as System.IO.Stream);
var doc = XDocument.Load(reader);
var excelWorksheeet = doc.Element("Worksheet");
XNamespace ns = "urn:schemas-microsoft-com:office:spreadsheet";
XName worksheetName = ns + "Worksheet";
var worksheetElement = doc.Root.Element(worksheetName);
}
ワークシート要素の値は次のとおりです。
<Worksheet ss:Name="Sheet1" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns="urn:schemas-microsoft-com:office:spreadsheet">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" ss:DefaultRowHeight="15">
<Row>
<Cell>
<Data ss:Type="Number">8.0299999999999994</Data>
</Cell>
</Row>
</Table>
</Worksheet>