cvs: php4 /ext/interbase interbase.c
| From: | Daniela Mariaschi | Date: | Tue, 19 Mar 2002 15:29:18 +0000 |
| Subject: | cvs: php4 /ext/interbase interbase.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-10422@lists.php.net to get a copy of this message | ||
daniela Tue Mar 19 10:29:18 2002 EDT
Modified files:
/php4/ext/interbase interbase.c
Log:
fixed floating number incorrectly rendered (as mentioned by giancarlo@niccolai.ws in BUG #14755)
Index: php4/ext/interbase/interbase.c
diff -u php4/ext/interbase/interbase.c:1.80 php4/ext/interbase/interbase.c:1.81
--- php4/ext/interbase/interbase.c:1.80 Sat Mar 16 13:43:41 2002
+++ php4/ext/interbase/interbase.c Tue Mar 19 10:29:17 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interbase.c,v 1.80 2002/03/16 18:43:41 wez Exp $ */
+/* $Id: interbase.c,v 1.81 2002/03/19 15:29:17 daniela Exp $ */
/* TODO: Arrays, roles?
@@ -595,7 +595,7 @@
php_info_print_table_start();
php_info_print_table_row(2, "Interbase Support", "enabled");
- php_info_print_table_row(2, "Revision", "$Revision: 1.80 $");
+ php_info_print_table_row(2, "Revision", "$Revision: 1.81 $");
#ifdef COMPILE_DL_INTERBASE
php_info_print_table_row(2, "Dynamic Module", "yes");
#endif
@@ -1787,13 +1787,14 @@
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)));