Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include <fvar.hpp>
00008 #include <string.h>
00009 #include <stdio.h>
00010 #include <stdlib.h>
00011 #include <math.h>
00012 #ifdef __NDPX__
00013 #include <dos.h>
00014 #endif
00015 #ifndef OPT_LIB
00016 #include <cassert>
00017 #include <climits>
00018 #endif
00019
00024 adstring str(double x, int minwidth, int decplaces)
00025 {
00026 int w = 0;
00027 int d = 0;
00028 char buffer[50];
00029
00030 int maxwidth = 0;
00031 if (fabs(x) > 0)
00032 maxwidth = int(log10(fabs(x)));
00033 else
00034 maxwidth = minwidth;
00035
00036 if (decplaces < 0)
00037 {
00038 if (minwidth < 8)
00039 w = 8;
00040 else
00041 w = minwidth;
00042
00043 if (x < 0)
00044 w++;
00045
00046 d = minwidth-7;
00047 if (d>10)
00048 d = 10;
00049
00050
00051
00052 sprintf(buffer,"%*.*e",w,d,x);
00053 }
00054 else
00055 {
00056 if (decplaces > 11)
00057 d = 11;
00058 else
00059 d = decplaces;
00060
00061 w = maxwidth;
00062 if (w < minwidth)
00063 w = minwidth;
00064
00065 w += d;
00066 if (x < 0)
00067 w++;
00068
00069
00070 sprintf(buffer,"%*.*f",w,d,x);
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083 }
00084
00085 adstring tmp(buffer);
00086 return (tmp);
00087 }
00088
00089 void str(const int a, adstring& s)
00090 {
00091 #if defined(_MSC_VER)
00092 char buffer[50];
00093 itoa(a, buffer, 10);
00094 s = adstring(buffer);
00095 #else
00096 s = itoa(a,10);
00097 #endif
00098 }
00099
00100 adstring str(const int a)
00101 {
00102 #if defined(_MSC_VER)
00103 char buffer[50];
00104 itoa(a, buffer, 10);
00105
00106
00107 adstring tmp((char*)buffer);
00108 #else
00109 adstring tmp = itoa(a,10);
00110 #endif
00111 return(tmp);
00112 }
00113
00114 adstring chr(int c)
00115 {
00116 #ifndef OPT_LIB
00117 assert(0 <= c && c <= CHAR_MAX);
00118 #endif
00119 return adstring((char)c);
00120 }