2016-06-22 10 views
-6

Hallo, ich mache ein Programm, das Preis von Tickets drucken wird. Ich habe ein Problem beim Zurückgeben einer Zeichenfolge.Wie Sie sowohl String als auch Double in Java

Hier ist mein Code

public class DiscountTicket extends Ticket 
{ 
    private int numberDays; 
    private int serial; 
    public static double price; 
    public static String s; 

public DiscountTicket(int serial, String t, int numberDays) 
{ 
    super(serial); 
    this.numberDays = numberDays; 
    s = t; 
} 

public double getPrice() 
{ 
    if (numberDays > 7) 
    { 
     price = 20.0; 

    } 
    else 
    { 
     price = 15.0; 
    } 

    return price ; 
} 


} 

Wenn ich die Zeichenfolge übergeben, um meine Methode zurückzukehren. Es wird gedruckt, dass es nicht kompatibel ist, um ein Double in einen String zu konvertieren. Ich habe versucht, es zu konvertieren, und es gab mir nur eine 0.0 Ausgabe.

+0

Posten Sie Ihren Code, um doppelt in String zu konvertieren – Kaushal28

+2

Design-Problem, öffentliche statische Doppelpreis; wird immer den gleichen Wert für alle Instanzen der Klasse DiscountTicket haben. Ich schätze, du solltest die Static hier fallen lassen. – Jaiprakash

+0

Nicht sicher, warum Sie eine Zahl zu einer Zeichenfolge möchten, aber Sie könnten versuchen, "Return (String) Preis" zu tun. – Xariez

Antwort

0

Um mehrere Dinge zurückzugeben, können Sie ein Array von Object s verwenden. Zum Beispiel (ich nehme an, Sie getPrice() zurückkehren wollen price und s:

public Object[] getPrice() { 
    if (numberDays > 7) 
    { 
     price = 20.0; 
    } 
    else 
    { 
     price = 15.0; 
    } 
    Object[] array = new Object[2]; 
    array[0] = price; 
    array[1] = s; 
    return array; 
} 

Dann können Sie Double und String gegossen, nachdem das Array zurückgegeben

+0

Ich verwende eine abstrakte Methode BTW. public abstract class Ticket { private int serial; \t public Ticket (int seriell) { this.serial = seriell; } public abstract doppelt getPrice(); \t public String toString() { \t \t \t return "Ticket: [Seriennummer" + seriell + "Preis:" + getPrice() + "]"; \t \t \t } \t } –

0

Verwendung Gefällt Ihnen dieses Convert

 DiscountTicket discountTicket = new DiscountTicket(); 

    //This gives you a string value 
    String stringValueOfDouble = String.valueOf(discountTicket.getPrice()); 
verwenden.

ODER

String.format() ist eine neue Alternative, die zum Konvertieren eines Double in ein String-Objekt verwendet werden kann wird zuerst in Java 5 (JDK1.5) eingeführt und hat viele coole Funktionen.

Syntax

public static String format(String format, Object... args) 

Es gibt viele Möglichkeiten, wie diese Methode zu verwenden. Aber für die Umwandlung Zwecke, hier ist ein einfaches Beispiel:

Beispiel

double number = -895.25f; 
String numberAsString = String.format ("%f", number); 

Und die Variable numberAsString wird den Wert „-895,250000“ Wir auch die Anzahl der Dezimalstellen steuern kann.

double number = -895.25f; 
    System.out.println(String.format ("%.1f", number)); 
    System.out.println(String.format ("%.2f", number)); 
    System.out.println(String.format ("%.3f", number)); 

Wird

angezeigt
-895.3 
-895.25 
-895.250 

[1]

[1]: http://i.stack.imgur.com/7t05Q.png 
+0

noch die gleichen Drucke 0.0 –

0
public class DiscountTicket extends Ticket { 

private int numberDays; 
private int serial; 
public static double price; 
public static String s; 

public DiscountTicket(int serial, String t, int numberDays) { 
super(serial); 
this.numberDays = numberDays; 
s = t; 
} 

@Override 
public double getPrice() 
{ 
    if (numberDays > 7) 
    { 
     price = 20.0; 

    } 
    else 
    { 
     price = 15.0; 
    } 

    return price ; 
} 

}

public abstract class Ticket { 
private int serial; 

public Ticket(int serial) { 
    this.serial = serial; 
} 

public abstract double getPrice(); 

public String toString() { 
    return "Ticket: [serial# " + serial + " Price: " + getPrice() + "]"; 
} 
} 

    public class MainClass { 

    public static void main(String args[]){ 

    DiscountTicket discountTicket = new DiscountTicket(5,"ashwani", 6); 

    double d = discountTicket.getPrice(); 

    String stringOfDouble = String.valueOf(d); 



    } 
} 

Und seine für mich arbeiten, überprüfen Sie für andere Fehler Sie haben

Verwandte Themen