I’ve seen a few questions on people trying to get MySQL to use ‘,’ as the floating point separator – what I’m trying to do is stop PHP from using it on a website running under the ‘nl_NL’ locale.
So in the code PHP is writing an SQL query ending like:
" ... HAVING `relevance` >= {$fFloatingPointNumber}";
The problem is, because PHP’s locale is running as ‘nl_NL’ when it converts that floating point number to a string it’s using ‘,’ as the separator (e.g. 1,5).
What I’m doing to prevent this currently is:
" ... HAVING `relevance` >= " . number_format($fFloatingPointNumber, 2, '.', '');
Is there a better way of doing this – or is this my best bet?
Solution 1
I will post my answer in case it is the only solution apart from @Pete one.
I would suggest switching the locale to GB or some other period separated float/double locale before each query then switching back to the correct locale after. I can not think of any other way around this.
Solution 2 (Best Bet)
You could always use the
number_formatmethod as followsPretty sure this would work, the documentation is here http://php.net/manual/en/function.number-format.php