U:RDoc::AnyMethod[iI"format:ETI"Kernel#format;TF:publico:RDoc::Markup::Document:@parts[&o:RDoc::Markup::Paragraph; [I"HReturns the string resulting from applying format_string to ;FI"Iany additional arguments. Within the format string, any characters ;FI":other than format sequences are copied to the result.;Fo:RDoc::Markup::BlankLine o;
; [I"0The syntax of a format sequence is follows.;F@o:RDoc::Markup::Verbatim; [I"%%[flags][width][.precision]type
;T:@format0o;
; [I"A format ;FI"Fsequence consists of a percent sign, followed by optional flags, ;FI"Hwidth, and precision indicators, then terminated with a field type ;FI"?character. The field type controls how the corresponding ;FI"Isprintf
argument is to be interpreted, while the flags ;FI" modify that interpretation.;F@o;
; [I"#The field type characters are:;F@o;; [6I"Field | Integer Format
;TI"K------+--------------------------------------------------------------
;TI"2 b | Convert argument as a binary number.
;TI"F | Negative numbers will be displayed as a two's complement
;TI"" | prefixed with `..1'.
;TI"D B | Equivalent to `b', but uses an uppercase 0B for prefix
;TI"- | in the alternative format by #.
;TI"3 d | Convert argument as a decimal number.
;TI" i | Identical to `d'.
;TI"2 o | Convert argument as an octal number.
;TI"F | Negative numbers will be displayed as a two's complement
;TI"" | prefixed with `..7'.
;TI" u | Identical to `d'.
;TI"7 x | Convert argument as a hexadecimal number.
;TI"F | Negative numbers will be displayed as a two's complement
;TI"E | prefixed with `..f' (representing an infinite string of
;TI" | leading 'ff's).
;TI"< X | Equivalent to `x', but uses uppercase letters.
;TI"
;TI"Field | Float Format
;TI"K------+--------------------------------------------------------------
;TI"G e | Convert floating point argument into exponential notation
;TI"L | with one digit before the decimal point as [-]d.dddddde[+-]dd.
;TI"L | The precision specifies the number of digits after the decimal
;TI"( | point (defaulting to six).
;TI"D E | Equivalent to `e', but uses an uppercase E to indicate
;TI" | the exponent.
;TI"? f | Convert floating point argument as [-]ddd.dddddd,
;TI"F | where the precision specifies the number of digits after
;TI" | the decimal point.
;TI"D g | Convert a floating point number using exponential form
;TI"@ | if the exponent is less than -4 or greater than or
;TI"C | equal to the precision, or in dd.dddd form otherwise.
;TI"G | The precision specifies the number of significant digits.
;TI"K G | Equivalent to `g', but use an uppercase `E' in exponent form.
;TI"D a | Convert floating point argument as [-]0xh.hhhhp[+-]dd,
;TI"H | which is consisted from optional sign, "0x", fraction part
;TI"C | as hexadecimal, "p", and exponential part as decimal.
;TI"? A | Equivalent to `a', but use uppercase `X' and `P'.
;TI"
;TI"Field | Other Format
;TI"K------+--------------------------------------------------------------
;TI"D c | Argument is the numeric code for a single character or
;TI"/ | a single character string itself.
;TI". p | The valuing of argument.inspect.
;TI"D s | Argument is a string to be substituted. If the format
;TI"I | sequence contains a precision, at most that many characters
;TI" | will be copied.
;TI"J % | A percent sign itself will be displayed. No argument taken.
;T;
0o;
; [I"5The flags modifies the behavior of the formats. ;FI"The flag characters are:;F@o;; [/I"(Flag | Applies to | Meaning
;TI"I---------+---------------+-----------------------------------------
;TI">space | bBdiouxX | Leave a space at the start of
;TI"6 | aAeEfgG | non-negative numbers.
;TI"D | (numeric fmt) | For `o', `x', `X', `b' and `B', use
;TI"E | | a minus sign with absolute value for
;TI"1 | | negative values.
;TI"I---------+---------------+-----------------------------------------
;TI"G(digit)$ | all | Specifies the absolute argument number
;TI"G | | for this field. Absolute and relative
;TI"F | | argument numbers cannot be mixed in a
;TI"0 | | sprintf string.
;TI"I---------+---------------+-----------------------------------------
;TI"; # | bBoxX | Use an alternative format.
;TI"P | aAeEfgG | For the conversions `o', increase the precision
;TI"E | | until the first digit will be `0' if
;TI"D | | it is not formatted as complements.
;TI"J | | For the conversions `x', `X', `b' and `B'
;TI"L | | on non-zero, prefix the result with ``0x'',
;TI"I | | ``0X'', ``0b'' and ``0B'', respectively.
;TI"K | | For `a', `A', `e', `E', `f', `g', and 'G',
;TI"C | | force a decimal point to be added,
;TI": | | even if no digits follow.
;TI"O | | For `g' and 'G', do not remove trailing zeros.
;TI"I---------+---------------+-----------------------------------------
;TI"H+ | bBdiouxX | Add a leading plus sign to non-negative
;TI") | aAeEfgG | numbers.
;TI"D | (numeric fmt) | For `o', `x', `X', `b' and `B', use
;TI"E | | a minus sign with absolute value for
;TI"1 | | negative values.
;TI"I---------+---------------+-----------------------------------------
;TI"L- | all | Left-justify the result of this conversion.
;TI"I---------+---------------+-----------------------------------------
;TI"<0 (zero) | bBdiouxX | Pad with zeros, not spaces.
;TI"H | aAeEfgG | For `o', `x', `X', `b' and `B', radix-1
;TI"J | (numeric fmt) | is used for negative numbers formatted as
;TI"- | | complements.
;TI"I---------+---------------+-----------------------------------------
;TI"J* | all | Use the next argument as the field width.
;TI"M | | If negative, left-justify the result. If the
;TI"N | | asterisk is followed by a number and a dollar
;TI"O | | sign, use the indicated argument as the width.
;T;
0o;
; [I"Examples of flags:;F@o;; [:I"F# `+' and space flag specifies the sign of non-negative numbers.
;TI"#sprintf("%d", 123) #=> "123"
;TI"$sprintf("%+d", 123) #=> "+123"
;TI"$sprintf("% d", 123) #=> " 123"
;TI"
;TI"@# `#' flag for `o' increases number of digits to show `0'.
;TI"># `+' and space flag changes format of negative numbers.
;TI"$sprintf("%o", 123) #=> "173"
;TI"%sprintf("%#o", 123) #=> "0173"
;TI"%sprintf("%+o", -123) #=> "-173"
;TI"'sprintf("%o", -123) #=> "..7605"
;TI"'sprintf("%#o", -123) #=> "..7605"
;TI"
;TI"@# `#' flag for `x' add a prefix `0x' for non-zero numbers.
;TI"E# `+' and space flag disables complements for negative numbers.
;TI"#sprintf("%x", 123) #=> "7b"
;TI"%sprintf("%#x", 123) #=> "0x7b"
;TI"$sprintf("%+x", -123) #=> "-7b"
;TI"&sprintf("%x", -123) #=> "..f85"
;TI"(sprintf("%#x", -123) #=> "0x..f85"
;TI""sprintf("%#x", 0) #=> "0"
;TI"
;TI")# `#' for `X' uses the prefix `0X'.
;TI""sprintf("%X", 123) #=> "7B"
;TI"$sprintf("%#X", 123) #=> "0X7B"
;TI"
;TI"@# `#' flag for `b' add a prefix `0b' for non-zero numbers.
;TI"E# `+' and space flag disables complements for negative numbers.
;TI"(sprintf("%b", 123) #=> "1111011"
;TI"*sprintf("%#b", 123) #=> "0b1111011"
;TI")sprintf("%+b", -123) #=> "-1111011"
;TI"+sprintf("%b", -123) #=> "..10000101"
;TI"-sprintf("%#b", -123) #=> "0b..10000101"
;TI""sprintf("%#b", 0) #=> "0"
;TI"
;TI")# `#' for `B' uses the prefix `0B'.
;TI"'sprintf("%B", 123) #=> "1111011"
;TI")sprintf("%#B", 123) #=> "0B1111011"
;TI"
;TI"5# `#' for `e' forces to show the decimal point.
;TI"%sprintf("%.0e", 1) #=> "1e+00"
;TI"&sprintf("%#.0e", 1) #=> "1.e+00"
;TI"
;TI"5# `#' for `f' forces to show the decimal point.
;TI"'sprintf("%.0f", 1234) #=> "1234"
;TI"(sprintf("%#.0f", 1234) #=> "1234."
;TI"
;TI"5# `#' for `g' forces to show the decimal point.
;TI"0# It also disables stripping lowest zeros.
;TI"(sprintf("%g", 123.4) #=> "123.4"
;TI"*sprintf("%#g", 123.4) #=> "123.400"
;TI")sprintf("%g", 123456) #=> "123456"
;TI"*sprintf("%#g", 123456) #=> "123456."
;T;
0o;
; [I"FThe field width is an optional integer, followed optionally by a ;FI"Hperiod and a precision. The width specifies the minimum number of ;FI"Bcharacters that will be written to the result for this field.;F@o;
; [I"Examples of width:;F@o;; [I"1# padding is done by spaces, width=20
;TI"6# 0 or radix-1. <------------------>
;TI"7sprintf("%20d", 123) #=> " 123"
;TI"7sprintf("%+20d", 123) #=> " +123"
;TI"7sprintf("%020d", 123) #=> "00000000000000000123"
;TI"7sprintf("%+020d", 123) #=> "+0000000000000000123"
;TI"7sprintf("% 020d", 123) #=> " 0000000000000000123"
;TI"7sprintf("%-20d", 123) #=> "123 "
;TI"7sprintf("%-+20d", 123) #=> "+123 "
;TI"7sprintf("%- 20d", 123) #=> " 123 "
;TI"7sprintf("%020x", -123) #=> "..ffffffffffffffff85"
;T;
0o;
; [I" For ;FI"Inumeric fields, the precision controls the number of decimal places ;FI"Idisplayed. For string fields, the precision determines the maximum ;FI"Knumber of characters to be copied from the string. (Thus, the format ;FI"Fsequence %10.10s
will always contribute exactly ten ;FI"characters to the result.);F@o;
; [I"Examples of precisions:;F@o;; [-I".# precision for `d', 'o', 'x' and 'b' is
;TI"7# minimum number of digits <------>
;TI"8sprintf("%20.8d", 123) #=> " 00000123"
;TI"8sprintf("%20.8o", 123) #=> " 00000173"
;TI"8sprintf("%20.8x", 123) #=> " 0000007b"
;TI"8sprintf("%20.8b", 123) #=> " 01111011"
;TI"8sprintf("%20.8d", -123) #=> " -00000123"
;TI"8sprintf("%20.8o", -123) #=> " ..777605"
;TI"8sprintf("%20.8x", -123) #=> " ..ffff85"
;TI"8sprintf("%20.8b", -11) #=> " ..110101"
;TI"
;TI":# "0x" and "0b" for `#x' and `#b' is not counted for
;TI"8# precision but "0" for `#o' is counted. <------>
;TI"9sprintf("%#20.8d", 123) #=> " 00000123"
;TI"9sprintf("%#20.8o", 123) #=> " 00000173"
;TI"9sprintf("%#20.8x", 123) #=> " 0x0000007b"
;TI"9sprintf("%#20.8b", 123) #=> " 0b01111011"
;TI"9sprintf("%#20.8d", -123) #=> " -00000123"
;TI"9sprintf("%#20.8o", -123) #=> " ..777605"
;TI"9sprintf("%#20.8x", -123) #=> " 0x..ffff85"
;TI"9sprintf("%#20.8b", -11) #=> " 0b..110101"
;TI"
;TI" precision for `e' is number of
;TI"9# digits after the decimal point <------>
;TI">sprintf("%20.8e", 1234.56789) #=> " 1.23456789e+03"
;TI"
;TI" precision for `f' is number of
;TI"=# digits after the decimal point <------>
;TI">sprintf("%20.8f", 1234.56789) #=> " 1234.56789000"
;TI"
;TI" precision for `g' is number of
;TI"=# significant digits <------->
;TI">sprintf("%20.8g", 1234.56789) #=> " 1234.5679"
;TI"
;TI"9# <------->
;TI">sprintf("%20.8g", 123456789) #=> " 1.2345679e+08"
;TI"
;TI"# precision for `s' is
;TI"@# maximum number of characters <------>
;TI"Asprintf("%20.8s", "string test") #=> " string t"
;T;
0o;
; [I"Examples:;F@o;; [I"?sprintf("%d %04x", 123, 123) #=> "123 007b"
;TI"Fsprintf("%08b '%4s'", 123, 123) #=> "01111011 ' 123'"
;TI"Gsprintf("%1$*2$s %2$d %1$s", "hello", 8) #=> " hello 8 hello"
;TI"Bsprintf("%1$*2$s %2$d", "hello", -8) #=> "hello -8"
;TI"Gsprintf("%+g:% g:%-g", 1.23, 1.23, 1.23) #=> "+1.23: 1.23:1.23"
;TI";sprintf("%u", -123) #=> "-123"
;T;
0o;
; [I"EFor more complex formatting, Ruby supports a reference by name. ;FI"A%s style uses format style, but %{name} style doesn't.;F@o;
; [I"Examples:;Fo;; [ I"d : %f", { :foo => 1, :bar => 2 })
;TI" #=> 1 : 2.000000
;TI"'sprintf("%{foo}f", { :foo => 1 })
;TI" # => "1f";T;
0:
@fileI"
object.c;T:0@omit_headings_from_table_of_contents_below0I"8format(format_string [, arguments...] ) -> string;F0[ I"(*args);T@FI"Kernel;TcRDoc::NormalModule00