Core Function Printf
(→Numbers) |
|||
Line 182: | Line 182: | ||
|see below | |see below | ||
|} | |} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | The group separator is especially useful for formatting currency values which require that negative values be enclosed in parentheses. This currency formatting example at the bottom of this document makes it obvious: | ||
+ | |||
+ | ==== Dates ==== | ||
=== Remarks === | === Remarks === |
Revision as of 06:20, 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 |
The group separator is especially useful for formatting currency values which require that negative values be enclosed in parentheses. This currency formatting example at the bottom of this document makes it obvious:
Dates
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