Locale

Machine

Mitglied
Hallo,

ich habe ein kleines Problem mit meinem Programm.

Es soll einen Bruch (uebergebe 2 Zahlen) mit x Nachkomastellen ausgeben. Zusaetzlich soll dann noch das "," geaendert werden, je nach dem wie man es haben moechte (GERMAN,ENGLISH,...)

Mein Problem das ist jetzt also habe ist, dass soweit ich das sehen kann immer Locale.ENGLISh verwendet wird.

Hier die relevanten Codestellen:

Java:
import java.util.Locale;

public class BenutzerFormat implements BruchFormat 
{
	private String s;
	private Locale land;
	
	public BenutzerFormat(Locale land)
	{
		if(land.equals(null))
		{
			this.land=Locale.GERMAN;
		}
		else
			this.land=land;
	}
	
	public BenutzerFormat(String zahl) 
	{
		this.s=zahl;
	}
	@Override
	public String bruchToString(int zaehler, int nenner) 
	{
		String rueck;
		double erg=(double)zaehler/(double)nenner;
		
		rueck=String.format(land,s, erg);

		return rueck+"\n";
	}

}


Testklasse:

Java:
b1.setFormat(new BenutzerFormat(Locale.GERMANY));
		b1.setFormat(new BenutzerFormat("%.2f"));
		System.out.println(b1);

Wuerde mir sehr helfen, falls ihr Ideen habt.
 

Machine

Mitglied
Hallo VFL-Freak,

danke fuer deine schnelle Antwort. Das habe ich ich natuerlich schon versucht, aber dadurch habe ich keine veraenderung der Ausgabe gesehen.
 

VfL_Freak

Top Contributor
Moin,

natürlich setzt die Locale NUR für dein Objekt b1, was auch immer das genau ist !!
Und ggf. davon abhängige, wennich mich recht erinnere ...

Gruß
Klaus
 

Machine

Mitglied
Das macht sie ja auch. Eventuell habe ich mich etwas schlecht ausgedrueckt.

Ich moechte ja, dass bei einer Kommazahl z.B. 0.5 ausgegeben wird, falls ich Locale.ENGLISH uebergebe. Nur leider wird immer 0.5 ausgegeben, auch wenn ich Locale.GERMAN uebergebe.

Wenn ich den Teil mit Locale weg lasse wird automatisch die Kommazahl im deutschen (0,5) Format ausgegeben.
 

Neue Themen


Oben