]> granicus.if.org Git - php/commitdiff
fixed numeric number incorrectly rendered
authorDaniela Mariaschi <daniela@php.net>
Thu, 21 Mar 2002 16:53:06 +0000 (16:53 +0000)
committerDaniela Mariaschi <daniela@php.net>
Thu, 21 Mar 2002 16:53:06 +0000 (16:53 +0000)
ext/interbase/interbase.c

index d355c41d6944a32cccf4e3959e6b09ea4b9be271..f30df743527a649374f65105b8df61e26571dd6e 100644 (file)
@@ -1786,13 +1786,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)));