Core Function Printf

From Sputnik Wiki
Revision as of 06:18, 10 November 2011 by UberFoX (Talk | contribs)
Jump to: navigation, search
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
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox