Mel
2004-12-02 09:26:19 UTC
Hallo,
Ich hab ein seltsames Problem in java 1.2
Wenn ich aufrufe
Double.valueOf("2.5");
ist alles ok aber auf beiner 2. Maschine funktioniert das
Double.valueOf("2,5");
Offensichtlich ein Lokalisierungsproblem.
Mein erster Ansatz war den lokalisierten decimal separator zu verwenden
char chDec = new DecimalFormatSymbols().getDecimalSeparator();
String ret = "2.5";
char chDec = new DecimalFormatSymbols().getDecimalSeparator();
if(chDec != ',') ret = ret.replace(',', chDec);
if(chDec != '.') ret = ret.replace('.', chDec);
Double.valueOf(ret);
Leider geht das auch nicht. Mein Rechner versteht zwar
Double.valueOf("2.5");
aber die lokalisierte Version
Double.valueOf("2,5");
funkt nicht.
Um nicht mehr von den lokalen Settings abhängig zu sein hab ich mein eigenes
Dezimalformat definiert
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
df.setDecimalFormatSymbols(dfs);
return df.parse(StrEnforceDecimalDot(strVal)).doubleValue();
Nachdem auch das nur auf einer Mascvhine funktioniert stell ich mir die
Frage was ich da falsch interpretiere?
Maschine 1 sieht folgendermaßen aus:
WinXp German version -> Oracle9iRel2 -> Java running within Oracle
Maschine 2 sieht folgendermaßen aus:
Unix -> Oracle9iRel2 -> Java running within Oracle
Ich nverstehs nicht.
Welches Format liest Double.valueOf parse per Definition?
In der Docu kann ich keine klare Aussage diesbezüglich finden.
Muß ich Oracle NLS Sprachsettings berücksichtigen?
Danke für jede Hilfe
Mel
Ich hab ein seltsames Problem in java 1.2
Wenn ich aufrufe
Double.valueOf("2.5");
ist alles ok aber auf beiner 2. Maschine funktioniert das
Double.valueOf("2,5");
Offensichtlich ein Lokalisierungsproblem.
Mein erster Ansatz war den lokalisierten decimal separator zu verwenden
char chDec = new DecimalFormatSymbols().getDecimalSeparator();
String ret = "2.5";
char chDec = new DecimalFormatSymbols().getDecimalSeparator();
if(chDec != ',') ret = ret.replace(',', chDec);
if(chDec != '.') ret = ret.replace('.', chDec);
Double.valueOf(ret);
Leider geht das auch nicht. Mein Rechner versteht zwar
Double.valueOf("2.5");
aber die lokalisierte Version
Double.valueOf("2,5");
funkt nicht.
Um nicht mehr von den lokalen Settings abhängig zu sein hab ich mein eigenes
Dezimalformat definiert
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
df.setDecimalFormatSymbols(dfs);
return df.parse(StrEnforceDecimalDot(strVal)).doubleValue();
Nachdem auch das nur auf einer Mascvhine funktioniert stell ich mir die
Frage was ich da falsch interpretiere?
Maschine 1 sieht folgendermaßen aus:
WinXp German version -> Oracle9iRel2 -> Java running within Oracle
Maschine 2 sieht folgendermaßen aus:
Unix -> Oracle9iRel2 -> Java running within Oracle
Ich nverstehs nicht.
Welches Format liest Double.valueOf parse per Definition?
In der Docu kann ich keine klare Aussage diesbezüglich finden.
Muß ich Oracle NLS Sprachsettings berücksichtigen?
Danke für jede Hilfe
Mel