German Zahlenformat KonvertToGerman

Paulsche

Well-Known Member
Licensed User
Longtime User
Hallo, unter B4ppc gab es die Routine "KonvertToGerman" mit "KonvertToEnglish",

so wie ich es sehe benötigt man sowas auch für B4A , da auch hier das englische Zahlenformat gilt.

Gibt es da schon so was oder muss man das neu erstellen für B4A ?

Ich möchte halt gerne meine Euro-Beträge im deutschen Format mit 2 Kommastellen darstellen.
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi Klaus, super, danke.

Nur eines will noch nicht funktionieren, und zwar wird z.B.
die Zahl 25.30 in 25,3 konvertiert.

Kann man es irgendiwe hinbekommen dass immer 2 Kommastellen angezeigt
werden, auch wenn nach dem Komma 0 steht ?
Also z.B. 25,00

In einer rechtsbündig formatierten Liste z.B. Euro Beträge, sieht das sonst nicht gut aus wenn unterschiedliche anzahl Kommastellen drin sind.
 
D

Deleted member 103

Guest
Hallo Paulsche,

die 2 funktionen sollten dir dabei helfen:
NumberFormat (Number As Double, MinimumIntegers As Int, MaximumFractions As Int) As String
NumberFormat2 (Number As Double, MinimumIntegers As Int, MaximumFractions As Int, MinimumFractions As Int, GroupingUsed As Boolean) As String

Link:
Basic4android - Core
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Danke Filippo,

die Kommastellen funktioinieren nu mit dem Code:

Sub ToGerman(Value As Double, NumberDigits As Int) As String
Dim txt As String
txt = NumberFormat2(Value, 0, NumberDigits, NumberDigits, True)
Return txt.Replace(".",",")
End Sub


Nur das Tausenderzeichen wird nicht von , in . konvertiert,
z.B. 22555.66 wird in 22,555,66 konvertiert.

Verstehe das txt.Replace(".",",") nicht ganz, ein punkt und 2 komma, in der Doku stehen nur 2 Werte A+B s.Replace("a", "b").

Steh aufm Schlauch.
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi Klaus, da haben sich unsere Einträge wohl überschnitten,
habe die Änderung schon probiert bevor du es gepostet hast ;-)

Wie gesagt, nur das Tausenderzeichen stimmt noch nicht,
da ist noch ein komma drin wo ein punkt sein soll.

txt = NumberFormat2(Value, 1, NumberDigits, NumberDigits, True)
 

klaus

Expert
Licensed User
Longtime User
Du musst das Programm in Post 2 neu laden, da funktioniert es.

Die Zeile muss so sein:
B4X:
txt = NumberFormat2(Value, 1, NumberDigits, NumberDigits, False)


Verstehe das txt.Replace(".",",") nicht ganz, ein punkt und 2 komma, in der Doku stehen nur 2 Werte A+B s.Replace("a", "b").
In unserem Fall ist a="." und b="," also ("." , ",") oder (".",",")

Brauchst Du die Tausenderzeichen ?

Beste Grüsse
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Also ich habe die Änderungen ja schon im Modul im Programm geändert.

Der Tausender Punkt sieht halt korrekt aus, große Zahlen sind besser lesbar. Wenn ich im Code "False" einstelle ist der Tausender Punkt ausgeschaltet und das Problem natürlich auch weg.

Wenns nicht geht dann muss ich wohl ohne leben, aber ich teste nochmal ob ichs irgendwie hinbekomme, unter B4ppc gings ja auch.

Danke für eure Hilfe, hat mich schon ein Stück weiter gebracht.

In unserem Fall ist a="." und b="," also ("." , ",") oder (".",",") Ja klar, bin ich blind ;-)
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi, das funktioniert so prima, danke.

Hab nur noch das " ' " als tausendertrennung gegen " . " getauscht,
nun ist es perfekt. :sign0098:
 
Top