Core Function Printf
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 |
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