Я не могу добавить знак доллара после отформатированного числа (Java) - PullRequest
0 голосов
/ 26 апреля 2020

Кажется, я не могу понять, почему этот код продолжает выдавать мне ошибки, связанные с форматированием, когда я пытаюсь уменьшить числа до второго десятичного знака, а также добавить после них " $ ".

Scanner scan = new Scanner(System.in);
int months = scan.nextInt();
int waterPrice = 20;
int internetPrice = 15;
int water = months * waterPrice;
int internet = months * internetPrice;
double others = 0;
double electricity = 0;
double electricityPrice;

for(int i=0; i<months; i++){
    electricityPrice = scan.nextDouble();
    electricity += electricityPrice;
    others = (electricity + water + internet) + 0.2 * (electricity + water + internet);

}
double avarage = (electricity + water + internet + others)/5;

System.out.println("Electricity: %.2f$$"+ electricity);
System.out.printf("Water: %.2d$$", water);
System.out.printf("Internet: %.2d$$", internet);
System.out.printf("Other: %.2f$$", others);
System.out.printf("Average: %.2f$$", avarage);        

Ответы [ 2 ]

3 голосов
/ 26 апреля 2020

Попробуйте:

System.out.format("Electricity: %.2f $$\n", 234.5554);

или

System.out.printf("Electricity: %.2f $$\n", 234.5554);

Выход:

enter image description here

В вашем случае:

System.out.printf("Electricity: %.2f$$\n", electricity);
System.out.printf("Water: %d$$\n", water);
System.out.printf("Internet: %d$$\n", internet);
System.out.printf("Other: %.2f$$\n", others);
System.out.printf("Average: %.2f$$\n", avarage);

Выход:

enter image description here

Примечание: В вашем случае я заменил %.2d на %d, потому что water и internet имеют тип integer. Если вам нужна десятичная точность для всех, т.е. 100.00 $$, вам нужно заменить int на double и использовать System.out.printf(%.2f$$\n)

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

Вы используете System.out.println(), что бесполезно для форматированного вывода. он объединит вывод в одну строку и отобразит ее.

Для форматированного вывода, как вы хотите go с Syatem.out.printf(), что аналогично C printf () .

Вы также можете использовать String.format() для форматированного вывода.

Пример:

Syatem.out.printf("Electricity: %.2f$$", electricity)
System.out.println("Electricity: " + String.format("%.2f$$", electricity))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...