У меня есть десятичный формат, подобный этому:
DecimalFormat df = new DecimalFormat("#,###.###");
Тогда у меня есть 3 метода, которые просто возвращают значение с плавающей запятой для времени, потенциала и тока со многими десятичными знаками в случае двух последних. Поэтому я пытаюсь получить выходное сообщение с форматированными 3 значениями, так:
System.out.println("t="+df.format(getTime())+"(s), v="+df.format(getPotential())+"(V), i="+df.format(getI())+"(A)");
Время просто отсчитывает секунды от 0 до 10 без десятичной дроби и выглядит нормально, пока не достигнет 10. Затем он показывает 1E + 1. Я просто не понимаю почему, так как я читал в API, и это не должно быть в научной нотации, если я не использую символ 'E' в DecimalFormat.
Кроме того, потенциал изменяется от 0 до определенного значения, используя 3 знака после запятой. Выглядит хорошо, но от 0 до 0,01, он появляется с 4 десятичными знаками, будучи последним всегда 0.
Есть какое-нибудь объяснение этому поведению DecimalFormat? Что я делаю не так?