xref: /csrg-svn/usr.bin/pascal/libpc/EXPO.c (revision 3003)
11649Smckusick /* Copyright (c) 1979 Regents of the University of California */
21649Smckusick 
3*3003Smckusic static char sccsid[] = "@(#)EXPO.c 1.2 03/07/81";
41649Smckusick 
5*3003Smckusic long
61649Smckusick EXPO(value)
71649Smckusick 
8*3003Smckusic 	double	value;
91649Smckusick {
10*3003Smckusic 	register int retval;
11*3003Smckusic 	register char *cp;
12*3003Smckusic 	char sign, buf[30];
13*3003Smckusic 	extern char *index();
14*3003Smckusic 
15*3003Smckusic 	if (value == 0.0)
161649Smckusick 		return 0;
17*3003Smckusic 	sprintf(buf, "%.1e", value);
18*3003Smckusic 	cp = index(buf, 'e') + 1;
19*3003Smckusic 	sign = *cp++;
20*3003Smckusic 	retval = 0;
21*3003Smckusic 	while (*cp)
22*3003Smckusic 		retval = retval * 10 + *cp++ - '0';
23*3003Smckusic 	return sign == '-' ? -retval : retval;
241649Smckusick }
25