|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.