Ich habe vor längerem mal aus interesse eine Function geschrieben, mit der man ganze Zahlen in das länderspezifische Format bringen kann. Kommazahlen können noch nicht formatiert werden.
$sAmount = Zahl die konvertiert werden soll
$iDecimals = Nachkommastellen
$iCurrency = Währung ausgeben (boolean)
Code
Func _FormatNumber($sAmount, $iDecimals = 0, $iCurrency=0)
Const $sGrouping = StringLeft(RegRead("HKEY_CURRENT_USER\Control Panel\International", "sGrouping"),1)
Const $sMonGrouping = StringLeft(RegRead("HKEY_CURRENT_USER\Control Panel\International", "sMonGrouping"),1)
Const $iCurrDigits = RegRead("HKEY_CURRENT_USER\Control Panel\International", "iCurrDigits")
Const $sMonThousandSep = RegRead("HKEY_CURRENT_USER\Control Panel\International", "sMonThousandSep")
Const $sMonDecimalSep = RegRead("HKEY_CURRENT_USER\Control Panel\International", "sMonDecimalSep")
Const $sCurrency = RegRead("HKEY_CURRENT_USER\Control Panel\International", "sCurrency")
Local $len = StringLen($sAmount)
local $dec
if $sAmount <> "" And StringIsDigit($sAmount) Then
if $iDecimals <> 0 And $iDecimals < $len Then
$dec = $sMonDecimalSep & StringRight($sAmount,$iDecimals)
$sAmount = StringTrimRight($sAmount,$iDecimals)
$len = $len - $iDecimals
EndIf
Local $sAmountCurrency = $dec
Dim $Groups_temp = $len / $sMonGrouping
if (isint($Groups_temp)) Then
$iGroups = $Groups_temp
Else
$iGroups = int($Groups_temp) +1
Endif
Dim $aThousand[$iGroups]
If $iGroups > 1 Then
for $i = 0 to UBound($aThousand)-1
$aThousand[$i] = StringRight($sAmount,$sMonGrouping)
$sAmount = StringTrimRight($sAmount,$sMonGrouping)
Next
for $i = 0 to UBound($aThousand)-1
if $i = UBound($aThousand)-1 then
$sAmountCurrency = $aThousand[$i] & $sAmountCurrency
Else
$sAmountCurrency = $sMonThousandSep & $aThousand[$i] & $sAmountCurrency
EndIf
Next
ElseIf $iGroups <=1 Then
$sAmountCurrency = $sAmount & $sAmountCurrency
EndIf
if $iCurrency = 1 Then
$sAmountCurrency = $sAmountCurrency &" "&$sCurrency
EndIf
return $sAmountCurrency
EndIf
EndFunc
Alles anzeigen
Beispiel:
Ausgabe mit zwei Nachkommastellen und Währung