Я программирую простую java-программу. Мне нужно получить строку из ввода и разделить ее на две части: 1-двойную 2-строку. Затем мне нужно сделать простой расчет по двойнику и отправить результат на выход с определенной точностью (4). Он работает нормально, но есть проблема, когда ввод равен 0, тогда он работает неправильно.Двойное значение с определенной точностью в java
Например, для этих входных данных, выход будет:
1 кг
выход: 2,2046
3,1 кг
выход: 6,8343
Но когда вход 0, то выход должен 0,0000, но он показывает 0.0. Что делать, чтобы заставить его показывать 0,0000?
Я прочитал подобный пост о двойной точности, они предлагают что-то вроде BigDecimal
класса, но я не могу их использовать в этом случае, мой код делает это:
line=input.nextLine();
array=line.split(" ");
value=Double.parseDouble(array[0]);
type=array[1];
value =value*2.2046;
String s = String.format("%.4f", value);
value = Double.parseDouble(s);
System.out.print(value+" kg\n");
Try "% 0.4f". Это означает, что «отформатируйте значение с плавающей запятой, поместите его нулями до тех пор, пока у вас не будет 4 цифры». – user268396
Я использовал «% .4f», но он показывает эту ошибку: Исключение в потоке «main» java.util.MissingFormatWidthException: 0.4f – MehrdadSComputer
См. Также http://stackoverflow.com/questions/10959424/show-only-two- digit-after-decimal, но это не дубликат этого из-за форматирования, необходимого для 0. – Raedwald