1970
1970
int convDS(double dnum, int digits, char *string, int *cc)
1975
1974
sprintf(string,"%.*g",digits,dnum);
1977
pstr = strstr(string,"e+");
1978
if (pstr) strcpy(pstr+1,pstr+2);
1980
pstr = strstr(string,"e0");
1981
if (pstr) strcpy(pstr+1,pstr+2);
1983
pstr = strstr(string,"e0");
1984
if (pstr) strcpy(pstr+1,pstr+2);
1986
pstr = strstr(string,"e-0");
1987
if (pstr) strcpy(pstr+2,pstr+3);
1989
pstr = strstr(string,"e-0");
1990
if (pstr) strcpy(pstr+2,pstr+3);
1992
ccc = strlen(string);
1976
pstr = strstr(string,"e+"); // 1.23e+12 > 1.23e12
1977
if (pstr) strcpy(pstr+1,pstr+2);
1979
pstr = strstr(string,"e0"); // 1.23e02 > 1.23e2
1980
if (pstr) strcpy(pstr+1,pstr+2);
1982
pstr = strstr(string,"e0");
1983
if (pstr) strcpy(pstr+1,pstr+2);
1985
pstr = strstr(string,"e-0"); // 1.23e-02 > 1.23e-2
1986
if (pstr) strcpy(pstr+2,pstr+3);
1988
pstr = strstr(string,"e-0");
1989
if (pstr) strcpy(pstr+2,pstr+3);
1991
if (cc) *cc = strlen(string);
1997
// format a number as "123 B" or "12.3 KB" or "1.23 MB" etc.
1998
// prec is the desired digits of precision to output
2000
char * formatKBMB(double fnum, int prec) // v.2.25
2003
#define mega (kilo*kilo)
2004
#define giga (kilo*kilo*kilo)
2007
static char output[20];
2016
else if (gnum > mega) {
2020
else if (gnum > kilo) {
2027
if (prec == 2 && gnum >= 99.5) prec++; // avoid e+nn formats
2028
if (prec == 3 && gnum >= 999.5) prec++;
2029
if (prec == 4 && gnum >= 9999.5) prec++;
2030
if (prec == 5 && gnum >= 99999.5) prec++;
2031
if (prec == 6 && gnum >= 999999.5) prec++;
2033
snprintf(output,20,"%.*g %s",prec,fnum,units);
1999
2039
/**************************************************************************
2001
2041
Wildcard string match
2847
2885
zuserdir /home/user/.appname/ log file, user parameters
2848
2886
***************************************************************************/
2851
char zdatadir[200], zdocdir[200], zicondir[200], zuserdir[200];
2852
char zlanguage[8] = "en"; // "lc" or "lc_RC" v.2.14
2888
namespace zfuncs // v.2.25
2891
char zdatadir[200], zdocdir[200], zicondir[200], zuserdir[200];
2892
char zlanguage[8] = "en"; // "lc" or "lc_RC" v.2.14
2895
using namespace zfuncs;
2854
2897
const char * get_zuserdir() { return zuserdir; } // /home/user/.appname
2855
2898
const char * get_zdatadir() { return zdatadir; } // parameters, icons