summaryrefslogtreecommitdiff
path: root/doc/lispref/strings.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lispref/strings.texi')
-rw-r--r--doc/lispref/strings.texi35
1 files changed, 23 insertions, 12 deletions
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index cf47db4a814..ae2b31c5418 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -901,17 +901,18 @@ Functions}). Thus, strings are enclosed in @samp{"} characters, and
@item %o
@cindex integer to octal
Replace the specification with the base-eight representation of an
-integer.
+unsigned integer.
@item %d
-Replace the specification with the base-ten representation of an
+Replace the specification with the base-ten representation of a signed
integer.
@item %x
@itemx %X
@cindex integer to hexadecimal
Replace the specification with the base-sixteen representation of an
-integer. @samp{%x} uses lower case and @samp{%X} uses upper case.
+unsigned integer. @samp{%x} uses lower case and @samp{%X} uses upper
+case.
@item %c
Replace the specification with the character which is the value given.
@@ -926,8 +927,12 @@ floating-point number.
@item %g
Replace the specification with notation for a floating-point number,
-using either exponential notation or decimal-point notation, whichever
-is shorter.
+using either exponential notation or decimal-point notation. The
+exponential notation is used if the exponent would be less than -4 or
+greater than or equal to the precision (default: 6). By default,
+trailing zeros are removed from the fractional portion of the result
+and a decimal-point character appears only if it is followed by a
+digit.
@item %%
Replace the specification with a single @samp{%}. This format
@@ -1008,9 +1013,11 @@ both flags are used, @samp{+} takes precedence.
The flag @samp{#} specifies an alternate form which depends on
the format in use. For @samp{%o}, it ensures that the result begins
with a @samp{0}. For @samp{%x} and @samp{%X}, it prefixes the result
-with @samp{0x} or @samp{0X}. For @samp{%e}, @samp{%f}, and @samp{%g},
-the @samp{#} flag means include a decimal point even if the precision
-is zero.
+with @samp{0x} or @samp{0X}. For @samp{%e} and @samp{%f}, the
+@samp{#} flag means include a decimal point even if the precision is
+zero. For @samp{%g}, it always includes a decimal point, and also
+forces any trailing zeros after the decimal point to be left in place
+where they would otherwise be removed.
The flag @samp{0} ensures that the padding consists of @samp{0}
characters instead of spaces. This flag is ignored for non-numerical
@@ -1041,10 +1048,14 @@ ignored.
All the specification characters allow an optional @dfn{precision}
before the character (after the width, if present). The precision is
a decimal-point @samp{.} followed by a digit-string. For the
-floating-point specifications (@samp{%e}, @samp{%f}, @samp{%g}), the
-precision specifies how many decimal places to show; if zero, the
-decimal-point itself is also omitted. For @samp{%s} and @samp{%S},
-the precision truncates the string to the given width, so @samp{%.3s}
+floating-point specifications (@samp{%e} and @samp{%f}), the
+precision specifies how many digits following the decimal point to
+show; if zero, the decimal-point itself is also omitted. For
+@samp{%g}, the precision specifies how many significant digits to show
+(significant digits are the first digit before the decimal point and
+all the digits after it). If the precision of %g is zero or
+unspecified, it is treated as 1. For @samp{%s} and @samp{%S}, the
+precision truncates the string to the given width, so @samp{%.3s}
shows only the first three characters of the representation for
@var{object}. For other specification characters, the effect of
precision is what the local library functions of the @code{printf}