ClosedXml округляется до 16-го знака после запятой, где я ищу более высокую арифметическую точность (20-е место после запятой) - PullRequest
0 голосов
/ 08 апреля 2019

Я использую ClosedXML для чтения файла Excel. Но по какой-то причине закрытый xml округляет значение ячейки, отформатированное до 16-го числа. Например, значение, которое я получаю, составляет 0,0232080359530551 вместо 0,02320803595305504993. Я посмотрел на это ! статья и попробовал но не получилось.

Перепробовал все эти варианты, но безуспешно.

string me = string.Empty;
me = row.Cell(i).ValueCached;
me = row.Cell(i).RichText.ToString();
me = row.Cell(i).Value.ToString();
double d = 0.00000000000000000000;
d = row.Cell(i).GetDouble();
row.Cell(i).TryGetValue<double>(out d);
var fme = row.Cell(i).GetValue<double>().ToString("N30");
var fmesd = row.Cell(i).GetValue<float>().ToString("N30");
var dddsdsd = Convert.ToDouble(row.Cell(i).GetType().GetField("_cellValue", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(row.Cell(i)));
var sdfljdlf = row.Cell(i).GetValue<string>();

1 Ответ

1 голос
/ 26 апреля 2019

Если тип данных в Excel равен Number, то Excel уже округляет его до 15 цифр.Если это текст, то вы получите полную длину с GetValue<string>() или как число с GetValue<decimal>().

...