#Region - TimeStamp ; 2011-10-01 10:26:31 v 0.1 #EndRegion - TimeStamp ;=============================================================================== ; Function Name....: _FormatNumber ; Description......: Formatierung von Zahlenwerten (mit und ohne Vorzeichen, Integer od. Float) ; Parameter(s).....: $sMask Maske zum Bestimmen des Ausgabestrings ; N3 Ganzzahl min. 3 Stellen, Auffüllen mit Vornullen ; n3 Ganzzahl min. 3 Stellen, Auffüllen mit Leerzeichen ; N3.2 Float min. 3 Vorkommastellen (Auffüllen mit Vornullen), min. 2 Nachkommastellen (Ergänzen mit Nullen) ; n.3 Float, Vorkommastellen wie übergeben, 3 Nachkommastellen (Ergänzen mit Nullen bzw. Runden auf Anzahl NK) ; $sString der zu formatierende Zahlenwert ; Note.............: Bei negativen Zahlenwerten wird das Vorzeichen mit zur Anzahl der Vorkomma/Stellen eingerechnet ; Return Value(s)..: der formatierte Zahlenwert ; Author(s)........: BugFix ( bugfix@autoit.de ) ;=============================================================================== Func _FormatNumber($sMask, $sString) Local $aFill[2] = [' ','0000000000000000000'], $sLen Local $preZero = StringIsUpper(StringLeft($sMask, 1)), $fFloat = 0, $fNegative = 0 If $sString < 0 Then $fNegative = 1 Local $aVal = StringSplit($sString, '.', 2) If @error Then ReDim $aVal[2] Else $fFloat = 1 EndIf $sMask = StringTrimLeft($sMask, 1) $sMask = StringSplit($sMask, '.', 2) $sLen = StringLen($aVal[0]) If UBound($sMask) = 1 Then If $sLen >= $sMask[0] Then If $fFloat Then Return Round($sString) Return $sString Else If $fFloat Then $sString = Round($sString) If $fNegative Then Return '-' & StringReplace(StringLeft($aFill[$preZero], $sMask[0] - $sLen) & $sString, '-', '', 1) Return StringLeft($aFill[$preZero], $sMask[0] - $sLen) & $sString EndIf Else If $preZero And ($sLen < $sMask[0]) Then $aVal[0] = StringLeft($aFill[1], $sMask[0] - $sLen) & $aVal[0] If $fFloat Then $aVal[1] = Round('0.' & $aVal[1], $sMask[1]) $aVal[1] &= StringLeft($aFill[1], $sMask[1] - (StringLen($aVal[1]) -2)) If $fNegative Then Return '-' & StringReplace($aVal[0] & '.' & StringTrimLeft($aVal[1], 2), '-', '', 1) Return $aVal[0] & '.' & StringTrimLeft($aVal[1], 2) Else If $fNegative Then Return '-' & StringReplace($aVal[0] & '.' & StringLeft($aFill[1], $sMask[1]), '-', '', 1) Return $aVal[0] & '.' & StringLeft($aFill[1], $sMask[1]) EndIf EndIf EndFunc ;==>_FormatNumber