В настоящее время я пытаюсь заставить мою программу округлить до двух знаков после запятой, но, похоже, неспособен. Вот мой код:Слишком много десятичных знаков при использовании Java?
double ounce;
double grams;
grams = 0.00;
System.out.println("This programme will print a table that can be used to convert ounces to grams, from values 1-15.");
System.out.println("One ounce is equal to 28.35 grams.\n\nOunces \t\t\t Grams");
ounce = 0;
do {
ounce++;
grams+=28.35;
System.out.println((""+ounce+"\t\t\t"+grams+""));
} while (ounce <15);
Результат выглядит следующим образом:
Ounces Grams
1.0 28.35
2.0 56.7
3.0 85.05000000000001
4.0 113.4
5.0 141.75
6.0 170.1
7.0 198.45
8.0 226.79999999999998
9.0 255.14999999999998
10.0 283.5
11.0 311.85
12.0 340.20000000000005
13.0 368.55000000000007
14.0 396.9000000000001
15.0 425.2500000000001
Наконец, мои номера под «г», не выравнивая точно правильный. Любые идеи, как заставить их идеально совмещаться?
Этот вывод, похоже, не поступает из этого кода, так как 'gramsFormated' не изменяется в вашем цикле. Каков реальный код? – RealSkeptic
Я не уверен, что вы имеете в виду. Я мог бы попробовать и изменить его, но это код. Посмотрев на этот код, я понимаю, что могу просто использовать «граммы», а не «gramsFormated», если это то, что вы имеете в виду. ** edit ** Я немного изменил свой код, но результат не изменился. –
Что я имел в виду, так это то, что вы не вставляли код, который фактически создавал выведенный вами результат. С «граммами» это имеет смысл. Если это был 'gramsFormatted', то с этим кодом он бы напечатал одно и то же значение во всех строках. В любом случае, теперь вы не форматируете его вообще. – RealSkeptic