wez Fri Jan 10 08:32:25 2003 EDT Modified files: /php4/ext/standard math.c Log: Fix the number format fix when the number of decimal places is 0. # Thanks to Edin for his telepathy! Index: php4/ext/standard/math.c diff -u php4/ext/standard/math.c:1.100 php4/ext/standard/math.c:1.101 --- php4/ext/standard/math.c:1.100 Thu Jan 9 10:44:49 2003 +++ php4/ext/standard/math.c Fri Jan 10 08:32:24 2003 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: math.c,v 1.100 2003/01/09 15:44:49 wez Exp $ */ +/* $Id: math.c,v 1.101 2003/01/10 13:32:24 wez Exp $ */ #include "php.h" #include "php_math.h" @@ -1014,7 +1014,11 @@ integral += integral / 3; } - reslen = integral + 1 + dec; + reslen = integral; + + if (dec) { + reslen += 1 + dec; + } /* add a byte for minus sign */ if (is_negative) { @@ -1034,21 +1038,24 @@ int topad = declen > 0 ? dec - declen : 0; /* pad with '0's */ + while (topad--) { *t-- = '0'; } - - /* now copy the chars after the point */ - memcpy(t - declen + 1, dp + 1, declen); - t -= declen; - s -= declen; + if (dp) { + /* now copy the chars after the point */ + memcpy(t - declen + 1, dp + 1, declen); + + t -= declen; + s -= declen; + } /* add decimal point */ *t-- = dec_point; s--; } - + /* copy the numbers before the decimal place, adding thousand * separator every three digits */ while(s >= tmpbuf) { @@ -1064,7 +1071,7 @@ } efree(tmpbuf); - + return resbuf; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php