Как использовать DecimalFormat при отображении массива? - PullRequest
0 голосов
/ 11 октября 2018

Я пишу кассовую программу для школы и добавляю ярлык «текущая цена».Все идет нормально.Я пытаюсь сделать так, чтобы цена отображалась с двумя десятичными знаками, так как без формата она будет отображать цены с 10+ десятичными знаками.Это мой код:

double aantalProducten [] = {1, 1, 1, 1, 1, 1};

double producten [] = {9.50, 2.95, 1.95, 2.50, 1.00, 1.00};

double totaal [] = {0, 0, 0, 0, 0, 0};

DecimalFormat df = new DecimalFormat("€0.00");

private void BtnPizzaActionPerformed(java.awt.event.ActionEvent 
evt) {                                         
    producten [0] = 9.50;
    aantalProducten[0]++; 
    totaal[0] =+ (producten[0]*aantalProducten[0]);
    LblCurrentPrice.setText(df.format(""+ 
  (totaal[0]+totaal[1]+totaal[2]+totaal[3]+totaal[4]+totaal[5])));

И я сделал это еще для 5 кнопок.Однако при нажатии на кнопку он скажет мне: «Не удается отформатировать данный объект как число».

Я попытался «Arrays.toString», но он выдал ту же ошибку.При отображении «текущей цены» без формата df.format не будет отображаться ошибка.Любые советы?

1 Ответ

0 голосов
/ 11 октября 2018

Вы не можете использовать DecimalFormat для форматирования строки.Вы можете использовать его для форматирования double s, хотя:

df.format(totaal[0]+totaal[1]+totaal[2]+totaal[3]+totaal[4]+totaal[5])

Вы приводили значение суммы итогов к String, добавляя к нему "" +.Опять же, нет метода DecimalFormat.format(String).

Редактировать:

Может быть, вы хотите отображать каждую сумму отдельно с пробелом между ними, а не с суммой, даже если это то, что у вас было.Вот как вы можете это сделать:

df.format(totaal[0])
+ " " + df.format(totaal[1])
+ " " + df.format(totaal[2])
+ " " + df.format(totaal[3])
+ " " + df.format(totaal[4])
+ " " + df.format(totaal[5])
...