]> granicus.if.org Git - php/commitdiff
fixed floating number incorrectly rendered (as mentioned by giancarlo@niccolai.ws...
authorDaniela Mariaschi <daniela@php.net>
Tue, 19 Mar 2002 15:29:17 +0000 (15:29 +0000)
committerDaniela Mariaschi <daniela@php.net>
Tue, 19 Mar 2002 15:29:17 +0000 (15:29 +0000)
ext/interbase/interbase.c

index 42b4a9905c40e796bb6b6870cca96b65ffc7a0d5..aed0db0837f879be3985f131dc5c87b31b5f0ad1 100644 (file)
@@ -1787,13 +1787,14 @@ static int _php_ibase_var_pval(pval *val, void *data, int type, int len, int sca
                        val->type = IS_STRING;
 
                        if (scale) {
-                               int i, len;
-                               char dt[20];
+                               int j, f = 1;
                                double number = (double) ((ISC_INT64) (*((ISC_INT64 *)data)));
-
-                               number /= - 10 * scale;
+                               char dt[20];
+                               for (j = 0; j < -scale; j++) {
+                                       f *= 10;
+                               }
                                sprintf(dt, "%%0.%df", -scale);
-                               val->value.str.len = sprintf (string_data, dt, number);
+                               val->value.str.len = sprintf (string_data, dt, number/f );
                        } else {
                                val->value.str.len = sprintf (string_data, "%Ld",
                                        (ISC_INT64) (*((ISC_INT64 *)data)));