summaryrefslogtreecommitdiff
path: root/lib/scalaires.c
diff options
context:
space:
mode:
authorbiouman <biouman>2001-05-01 12:41:41 +0000
committerbiouman <biouman>2001-05-01 12:41:41 +0000
commitb05b13f4f74e253f844d168e057f3be5408d06f5 (patch)
treeed4c9004e0d7974525e6f93af85d0803928bf4aa /lib/scalaires.c
parent78dcc3729881bb6b3937da195bc070ca96cb049b (diff)
*** empty log message ***
Diffstat (limited to 'lib/scalaires.c')
-rw-r--r--lib/scalaires.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/scalaires.c b/lib/scalaires.c
index d2f24fb..33b7ef2 100644
--- a/lib/scalaires.c
+++ b/lib/scalaires.c
@@ -4,6 +4,7 @@
*
*/
#include <math.h>
+#include <string.h>
#include "scalaires.h"
#include "exceptions.h"
#ifdef HAVE_CONFIG_H
@@ -115,6 +116,7 @@ rationnel rat_division(rationnel rat1, rationnel rat2)
}
+
char *rat_to_string(rationnel rat)
{
char resultat[128];
@@ -129,13 +131,22 @@ char *rat_to_string(rationnel rat)
switch(display) {
case DEC:
- sprintf(temp,"%d/%d", rat.num, rat.denom);
+ if (rat.denom==1)
+ sprintf(temp,"%d", rat.num);
+ else
+ sprintf(temp,"%d/%d", rat.num, rat.denom);
break;
case HEX:
- sprintf(temp,"%x/%x", rat.num, rat.denom);
+ if (rat.denom==1)
+ sprintf(temp,"%x", rat.num);
+ else
+ sprintf(temp,"%x/%x", rat.num, rat.denom);
break;
- case OCT:
- sprintf(temp,"%o/%o", rat.num, rat.denom);
+ case OCT:
+ if (rat.denom==1)
+ sprintf(temp,"%o", rat.num);
+ else
+ sprintf(temp,"%o/%o", rat.num, rat.denom);
break;
case FLT:
sprintf(temp,"%f", rat_to_double(rat));
@@ -143,6 +154,6 @@ char *rat_to_string(rationnel rat)
}
strcat(resultat, temp);
- return resultat;
+ return Estrdup(resultat);
}