Core Function Printf
(Created page with "<pre> SPrintf( <expression>, <expressions>... ) </pre> === Description === Create a formatted string. === expression === The format string and flags to use (see Remarks). ==...") |
(→Numbers) |
||
Line 123: | Line 123: | ||
+ | |||
+ | |||
+ | Custom number formatting: | ||
+ | |||
+ | {| border="1" align="left" style="text-align:center;" | ||
+ | |Specifier | ||
+ | |Type | ||
+ | |Example | ||
+ | |Output with (double)1500.42 | ||
+ | |Note | ||
+ | |- | ||
+ | |0 | ||
+ | |Zero placeholder | ||
+ | |{0:00.0000} | ||
+ | |1500.4200 | ||
+ | |Pads with zeroes. | ||
+ | |- | ||
+ | |# | ||
+ | |Digit placeholder | ||
+ | |{0:(#).##} | ||
+ | |(1500).42 | ||
+ | | | ||
+ | |- | ||
+ | |. | ||
+ | |Decimal point | ||
+ | |{0:0.0} | ||
+ | |1500.4 | ||
+ | | | ||
+ | |- | ||
+ | |, | ||
+ | |Thousand separator | ||
+ | |{0:0,0} | ||
+ | |1,500 | ||
+ | |Must be between two zeroes. | ||
+ | |- | ||
+ | |,. | ||
+ | |Number scaling | ||
+ | |{0:0,.} | ||
+ | |2 | ||
+ | |Comma adjacent to Period scales by 1000. | ||
+ | |- | ||
+ | |% | ||
+ | |Percent | ||
+ | |{0:0%} | ||
+ | |150042% | ||
+ | |Multiplies by 100, adds % sign. | ||
+ | |- | ||
+ | |e | ||
+ | |Exponent placeholder | ||
+ | |{0:00e+0} | ||
+ | |15e+2 | ||
+ | |Many exponent formats available. | ||
+ | |- | ||
+ | |; | ||
+ | |Group separator | ||
+ | |see below | ||
+ | |see below | ||
+ | |see below | ||
+ | |} | ||
=== Remarks === | === Remarks === |
Revision as of 06:18, 10 November 2011
SPrintf( <expression>, <expressions>... )
Contents |
Description
Create a formatted string.
expression
The format string and flags to use (see Remarks).
expressions
Variables that will be output according to the "Format Control".
Return Value
Success: Returns the formatted string.
Failure: Returns an empty string.
Format Control
Strings
There really isn’t any formatting within a string, beyond it’s alignment. Alignment works for any argument being printed.
Example:
Printf("->{0,10}<-\n", "Hello") Printf("->{0,-10}<-\n", "Hello") ; Generates ; -> Hello<- ; ->Hello <-
Numbers
Basic number formatting specifiers:
Specifier | Type | Format | Output with (double)1.42 | Output with (int)1337 | Output with (int)-12400 |
c | Currency | {0:c} | $1.42 | $1,337 | -$12,400 |
d | Decimal (Whole number) | {0:d} | 1337 | -12400 | |
e | Scientific | {0:e} | 1.420000e+000 | 1.337000e+003 | -1.240000e+004 |
f | Fixed point | {0:f} | 1.42 | 1337.00 | -12400.00 |
g | General | {0:g} | 1.42 | 1337 | -12400 |
n | Number with commas for thousands | {0:n} | 1.42 | 1,337 | -12,400 |
r | Round trippable | {0:r} | 1.42 | ||
x | Hexadecimal | {0:x4} | 1.42 | 0539 | cf90 |
Custom number formatting:
Specifier | Type | Example | Output with (double)1500.42 | Note |
0 | Zero placeholder | {0:00.0000} | 1500.4200 | Pads with zeroes. |
# | Digit placeholder | {0:(#).##} | (1500).42 | |
. | Decimal point | {0:0.0} | 1500.4 | |
, | Thousand separator | {0:0,0} | 1,500 | Must be between two zeroes. |
,. | Number scaling | {0:0,.} | 2 | Comma adjacent to Period scales by 1000. |
% | Percent | {0:0%} | 150042% | Multiplies by 100, adds % sign. |
e | Exponent placeholder | {0:00e+0} | 15e+2 | Many exponent formats available. |
; | Group separator | see below | see below | see below |
Remarks
Warning: If you expect to use int, byte, float etc in the params then you must cast it as such for example:
$myint = 100 $val = SPrintf("Value is 0x'{0:x}'", (int)$myint) ; The (int) will only take in $myint $myint = 100 $myint2 = 100 $val = SPrintf("Value is 0x'{0:x}'", (int)($myint + $myint2)) ; The (int) will now take in $myint AND $myint2
Note how $myint was cast as an int? using (int)$myint this is vital since if you dont do that it might send a string or a float you never really know with $variables so its best to cast it.
There is an alternative method example:
$myint = 100 $val = SPrintf("Value is 0x'{0:x}'", int($myint))
Its up to you to decide which one to use.
If you wish to capture the output of Printf to create strings:
Go see SPrintf( <expression>, <expressions>... ) to Printf to strings.
Anything thats valid for Printf to print to console window is also valid for SPrintf to use to create strings.
Example
Printf("Value is 0x'{0:x}'", (int)100) ; Prints 0x64 since the {0:x} is telling it to place param 0 as :x meaning hex