Я использую apache poi 3.10-FINAL, и при чтении чисел с листа excel я получаю очень странное поведение: действительно, результат cell.getNumericCellValue() на 0.001306 не 0.001306, а: 0.0013059999999 (!). И 2587441349.95676 становится 2.5874413499567585E9.Apache POI делает раунды по числовым значениям, которые он читает?
Я пробовал много разных вещей, например, меняя тип ячейки на «String» перед ее чтением (во всяком случае, числовые значения сразу меняются в строковые значения после прочтения ...) или с использованием метода getRawValue(), но если значение является хорошим, формат не равен: 0.001306 становится 1.306E-3, и я не могу применять правила форматирования, так как нет реального правила форматирования, единственное правило: оно должно быть похоже на то, что было в excel (одно значение может быть 00.001306, другое может быть 1.306E-3 ...)
Я попытался внести изменения в лист excel с кнопкой «ячейка формата», но он ничего не меняет . Единственный случай, когда эти числовые данные считаются строковыми значениями, - это когда простая простая цитата перед номером.
И ... Я не понимаю, почему, но кажется, что я единственный, кто встретит такую проблему на земле ...?
(Извините за мой бедный английский ...)
Добро пожаловать в [прекрасный мир чисел с плавающей запятой] (https://en.wikipedia.org/wiki/Floating_point)! Что произойдет, если вы попытаетесь использовать [DataFormatter.formatCellValue] (http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html#formatCellValue%28org.apache.poi.ss.usermodel. Cell% 29) в ячейке, дает ли это ответ, который вы ожидали? – Gagravarr
... делает, спасибо soOo много! – CPauline