Code archives/Miscellaneous/Number Format
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| commas and left padding are optional. there is error checking for negative parameters. padding specifies how many characters will be on left of the decimal. any string that exceeds (padding + decimal + decimal places) will output "Error" Output: 123,456,789.00
1,234,567,891.23
12,345,678.91
123,456.78
123456789123.00
Error
| |||||
Print Format(123456789:Double,2,3,14)
Print
Print Format(1234567891.23:Double,2,3,14)
Print Format(12345678.9123:Double,2,3,14)
Print Format(123456.789123:Double,2,3,14)
Print
Print Format(123456789123:Double,2,0,14)
Print Format(123456789123:Double,2,3,14)
Function Format:String( number:Double, decimal:Int=4, comma:Int=0, padleft:Int=0 )
Assert decimal > -1 And comma > -1 And padleft > -1, "Negative decimal,comma or padleft not allowed in Format()"
Local str:String = number
Local dl:Int = str.Find(".")
If decimal = 0 Then decimal = -1
str = str[..dl+decimal+1]
If comma
While dl>comma
str = str[..dl-comma] + "," + str[dl-comma..]
dl :- comma
Wend
EndIf
If padleft
Local paddedLength:Int = padleft+decimal+1
If paddedLength < str.Length Then str = "Error"
str = RSet(str,paddedLength)
EndIf
Return str
End Function |
Comments
| ||
| fixed bug; if decimal was 0 it would print the decimal |
Code Archives Forum