xref: /original-bsd/usr.bin/pascal/libpc/EXPO.c (revision 5133e8a4)
1 /*-
2  * Copyright (c) 1979 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  */
7 
8 #ifndef lint
9 static char sccsid[] = "@(#)EXPO.c	1.3 (Berkeley) 04/09/90";
10 #endif /* not lint */
11 
12 long
13 EXPO(value)
14 
15 	double	value;
16 {
17 	register int retval;
18 	register char *cp;
19 	char sign, buf[30];
20 	extern char *index();
21 
22 	if (value == 0.0)
23 		return 0;
24 	sprintf(buf, "%.1e", value);
25 	cp = index(buf, 'e') + 1;
26 	sign = *cp++;
27 	retval = 0;
28 	while (*cp)
29 		retval = retval * 10 + *cp++ - '0';
30 	return sign == '-' ? -retval : retval;
31 }
32