mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
119 lines
3.5 KiB
Plaintext
119 lines
3.5 KiB
Plaintext
NAME
|
|
strprintf - formatted print to a string
|
|
|
|
SYNOPSIS
|
|
strprintf(fmt, x_1, x_2, ...)
|
|
|
|
TYPES
|
|
fmt string
|
|
x_1, x_2, ... any
|
|
|
|
return string
|
|
|
|
DESCRIPTION
|
|
This function returns the string formed from the characters that
|
|
would be printed to standard output by printf(fmt, x_1, x_2, ...).
|
|
|
|
EXAMPLE
|
|
; strprintf("h=%d, i=%d", 2, 3);
|
|
"h=2, i=3"
|
|
|
|
; config("epsilon", 1e-6),;
|
|
; config("display", 6),;
|
|
; config("tilde", 1),;
|
|
; config("outround", 0),;
|
|
; config("fullzero", 0),;
|
|
; fmt = "%f,%10f,%-10f,%10.4f,%.4f,%.f.\n";
|
|
; a = sqrt(3);
|
|
; strprintf(fmt,a,a,a,a,a,a);
|
|
"1.732051, 1.732051,1.732051 , ~1.7320,~1.7320,~1.
|
|
"
|
|
|
|
; config("display", 50),;
|
|
; fmt2 = "%g %g\n%g %g\n"
|
|
; strprintf(fmt2, 1e5, 1e49, 1e50, 1e500);
|
|
"100000 100000000000000000000000000000000000000000000000000
|
|
1e50 1e500
|
|
"
|
|
|
|
; /*
|
|
* NOTE: When displaying many digits after the decimal point
|
|
* be sure to set display(digits) (see 'help display') to
|
|
* large enough AND to set epsilon(eps) (see 'help epsilon')
|
|
* small enough (or if the function has a esp argument,
|
|
* give a eps argument that is small enough) to display
|
|
* the value correctly.
|
|
*/
|
|
; config("tilde", 1),;
|
|
; config("tab", 0),;
|
|
; fmt1 = "%f";
|
|
|
|
; ## NOTE: display has too few digits and epsilon is not small enough
|
|
|
|
; display(12),;
|
|
; strprintf(fmt1, pi(1e-10));
|
|
"3.1415926536"
|
|
; epsilon(1e-10),;
|
|
; strprintf(fmt1, pi());
|
|
"3.1415926536"
|
|
|
|
; ## NOTE: display has too few digits yet epsilon is small enough
|
|
|
|
; display(12),;
|
|
; strprintf(fmt1, pi(1e-72));
|
|
"~3.141592653590"
|
|
; epsilon(1e-72),;
|
|
; strprintf(fmt1, pi());
|
|
~3.141592653590
|
|
|
|
; ## NOTE: display has enough digits but epsilon is not small enough
|
|
|
|
; display(72),;
|
|
; strprintf(fmt1, pi(1e-10));
|
|
"3.1415926536"
|
|
; epsilon(1e-10),;
|
|
; strprintf(fmt1, pi());
|
|
"3.1415926536"
|
|
|
|
; ## NOTE: display has enough digits and epsilon is small enough
|
|
|
|
; display(72),;
|
|
; strprintf(fmt1, pi(1e-72));
|
|
"3.141592653589793238462643383279502884197169399375105820974944592307816406"
|
|
; epsilon(1e-72),;
|
|
; strprintf(fmt1, pi());
|
|
"3.141592653589793238462643383279502884197169399375105820974944592307816406"
|
|
|
|
LIMITS
|
|
The number of arguments of strprintf() is not to exceed 1024.
|
|
|
|
LINK LIBRARY
|
|
none
|
|
|
|
SEE ALSO
|
|
config, display, epsilon, fprintf, strcat, strcpy, strerror,
|
|
strlen, strncmp, strncpy, strpos, strscan, strscanf, substr,
|
|
printf
|
|
|
|
## Copyright (C) 1999-2006,2018,2021 Landon Curt Noll
|
|
##
|
|
## Calc is open software; you can redistribute it and/or modify it under
|
|
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
## as published by the Free Software Foundation.
|
|
##
|
|
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
## Public License for more details.
|
|
##
|
|
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
##
|
|
## Under source code control: 1996/03/12 22:50:41
|
|
## File existed as early as: 1996
|
|
##
|
|
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
|
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|