Core Function Printf

From Sputnik Wiki
(Difference between revisions)
Jump to: navigation, search
(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
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox