Annotation of cci/usr/src/lib/libc/gen/fltpr.c, revision 1.1.1.1

1.1       root        1: /* fltpr.c     Tahoe version 1/21/83 */
                      2: char *fcvt(), *ecvt();
                      3: char *
                      4: _pfloat(number, ndigit, p)
                      5:        double number;
                      6:        register int ndigit;
                      7:        register char *p;
                      8: {
                      9:        register decpt;
                     10:        register char *s;
                     11:        int pdecpt, sign;
                     12: 
                     13:        s = fcvt(number, ndigit, &pdecpt, &sign);
                     14:        decpt = pdecpt;
                     15:        if(sign)
                     16:                *p++ = '-';
                     17:        if(decpt <= 0)
                     18:                *p++ = '0';
                     19:        while(decpt > 0) {
                     20:                *p++ = *s++;
                     21:                decpt--;
                     22:        }
                     23:        if(ndigit)
                     24:                *p++ = '.';
                     25:        while(ndigit>0 && decpt<0) {
                     26:                *p++ = '0';
                     27:                decpt++;
                     28:                ndigit--;
                     29:        }
                     30:        while(ndigit > 0) {
                     31:                *p++ = *s++;
                     32:                ndigit--;
                     33:        }
                     34:        return(p);
                     35: }
                     36: char *
                     37: _pscien(number, ndigit, p)
                     38:        double number;
                     39:        register int ndigit;
                     40:        register char *p;
                     41: {
                     42:        register decpt;
                     43:        register char *s;
                     44:        int pdecpt, sign;
                     45: 
                     46:        s = ecvt(number, ndigit, &pdecpt, &sign);
                     47:        decpt = pdecpt;
                     48:        if(sign)
                     49:                *p++ = '-';
                     50:        if(*s == '0')
                     51:                decpt++;
                     52:        *p++ = *s++;
                     53:        *p++ = '.';
                     54:        while(--ndigit > 0)
                     55:                *p++ = *s++;
                     56:        *p++ = 'e';
                     57:        if(--decpt < 0) {
                     58:                decpt = -decpt;
                     59:                *p++ = '-';
                     60:        }
                     61:        else
                     62:                *p++ = '+';
                     63:        *p++ = decpt/10+'0';
                     64:        *p++ = decpt%10+'0';
                     65:        return(p);
                     66: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.