From 66b910e87c9b2959fef1997a7ee8d7f691d4e074 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sat, 9 Aug 2003 01:12:41 +0000 Subject: [PATCH] Bugfix #24142, part 2 --- ext/standard/config.m4 | 21 +++++++++++++++++++++ ext/standard/math.c | 8 +++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/ext/standard/config.m4 b/ext/standard/config.m4 index 9ee84205c6..51ef3e4cd2 100644 --- a/ext/standard/config.m4 +++ b/ext/standard/config.m4 @@ -253,6 +253,27 @@ AC_DEFUN([PHP_CHECK_IF_SUPPORT_PROC_OPEN],[ ]) +dnl +dnl round fuzz +dnl +AC_MSG_CHECKING([whether rounding works as expected]) +AC_TRY_RUN([ +#include + int main() { + return floor(0.045*pow(10,2) + 0.5)/10.0 != 0.5; + } +],[ + PHP_ROUND_FUZZ=0.5 + AC_MSG_RESULT(yes) +],[ + PHP_ROUND_FUZZ=0.50000000001 + AC_MSG_RESULT(no) +],[ + PHP_ROUND_FUZZ=0.50000000001 + AC_MSG_RESULT(cross compile) +]) +AC_DEFINE_UNQUOTED(PHP_ROUND_FUZZ, $PHP_ROUND_FUZZ, [ see #24142 ]) + PHP_CHECK_IF_SUPPORT_PROC_OPEN dnl getopt long options disabled for now diff --git a/ext/standard/math.c b/ext/standard/math.c index ee4274460f..7d7c73f84b 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -32,7 +32,13 @@ #define M_PI 3.14159265358979323846 #endif -#define PHP_ROUND_FUZZ 0.50000000001 +#ifndef PHP_ROUND_FUZZ +# ifndef PHP_WIN32 +# define PHP_ROUND_FUZZ 0.50000000001 +# else +# define PHP_ROUND_FUZZ 0.5 +# endif +#endif /* {{{ proto int abs(int number) Return the absolute value of the number */ -- 2.40.0