2016-03-30 17 views
-1

Ich habe nur eine Frage zum Hinzufügen einer Währung ($) in JAVA, ich habe die NumberFormat.getCurrencyInstance(); um meine Ausgaben in "$" zu bekommen. Mein Programm ist die Eingabe etwas Geld (String-Format) zum Beispiel das Programm nur akzeptiert ($ 100.00, $ 50.00, $ 20.00 ... und so weiter), so habe ich diesen Code:JAVA Hinzufügen von Doppel zu einer Zeichenfolge

String payment = keyboard.next(); 
while (!(payment.equals("$100.00")) && (!payment.equals("$50.00")) && (!payment.equals("$20.00")) && (!payment.equals("$10.00")) && (!payment.equals("$5.00")) && (!payment.equals("$2.00")) && (!payment.equals("$1.00")) { 
System.out.print("Invalid coin or note. Try again. "); 
payment = keyboard.next(); } 

Wie kann ich die Eingänge erhalten (100.00, 50.00 ...) als Double, um sie von den Gesamtpreis .. zum Beispiel zu subtrahieren ich will (100,00-12,00) (12.00 ist der Gesamtpreis)

Jede Hilfe Dank geschätzt würde

+0

'Double.parseDouble'? – Mena

+0

@Mena Nach dem Entfernen des $ -Zeichens. – Hackerdarshi

+0

@Hackerdarshi ist selbstverständlich. – Mena

Antwort

0

Wenn Ihre Eingabe ein "$" Zeichen ist, können Sie Löschen Sie das erste Element Ihrer Zeichenfolge und konvertieren Sie es anschließend in ein Double.

//method to convert String in Double 
public Double getDoubleFromString(String payment) 
{ 
    payment = payment.substring(1); 
    double paymentDouble = Double.parseDouble(payment); 
    return paymentDouble; 
} 

String payment = keyboard.next(); 
double paymentDouble = getDoubleFromString(payment); 

while (paymentDouble != 100.00 && paymentDouble != 50.00 && paymentDouble != 20.00 
      && paymentDouble != 10.00 && paymentDouble != 5.00 
      && paymentDouble != 2.00 && paymentDouble != 1.00) 
     { 
     System.out.print("Invalid coin or note. Try again."); 
     String payment = keyboard.next(); 
     paymentDouble = getDoubleFromString(payment); 
     } 
+0

die Spezifikation sagt, dass die Eingabe mit einem "$" Zeichen sein sollte. also 100,00 und 50,00 ... werden nicht akzeptiert, das sollten sie sein ($ 100,00 ....) –

+0

Ok, ich habe meine Antwort bearbeitet. – DistribuzioneGaussiana

+0

DANKE, ich habe es geschafft! –

1
public double convertPayment(String inputPayment) { 
    String payment = inputPayment.substring(1); 
    double paymentValue = Double.parseDouble(payment); 
    return paymentValue; 
} 
Verwandte Themen