Es ist schon so gewollt, dass ein Komma (,) als Dezimaltrennzeichen und ein Semikolon (;) als Feldseparator von csv.gy ausgegeben wird. Dies ist das CSV-Format, das von MS Excel (mit deutscher Ländereinstellung) verwendet wird. Mit einem Doppelklick werden die Dateien korrekt in MS Excel geöffnet.
Das Muster
#,##0.###, das in der folgenden Programmzeile verwendet wird, verwendet
nicht lokalisierte Symbole, um das Format zu setzen. Ein Punkt . bedeutet immer (unabhängig von der Ländereinstellung) ein Dezimaltrennzeichen.
Die
nicht lokalisierten Symbole werden danach noch abhängig von der Ländereinstellung des Betriebssystems in
lokalisierte Symbole umgesetzt.
Als Dezimaltrennzeichen wird in Deutschland ein Komma verwendet. Der Punkt aus dem Muster wird also als Komma ausgegeben.
Wenn Du das anpassen möchtest, musst Du z.B. die Symbole aus dem englischen (en) verwenden:
Code: Alles auswählen
import java.text.DecimalFormatSymbols
def dfs=DecimalFormatSymbols.getInstance(new Locale('en'))
numberFormat.setDecimalFormatSymbols(dfs)
Dann bekommst Du Dein gewünschtes Format. Die API in Java ist etwas komplex, da das Thema Lokalisierung komplex ist.
Nachtrag:
Wenn Du einfach das englische Zahlenformat haben möchtest, ohne eine bestimmte Anzahl an Vorkomma-/Nachkommastellen oder Tausendertrennzeichen, dann kannst Du auch die Zeile 53 wie folgt abändern:
Von
nach
Gruß
Mathias