|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-09-29 17:09 UTC] adrian at fuzzee dot co dot uk
Description: ------------ With mysqli statements, a MySQL double loses trailing zeroes, so '0.000' becomes just '0' and '3.350' would become '3.35'. However, if you use regular mysqli queries (non prepared statements) the trailing zeroes are preserved... Obviously not a fatal bug, but an odd difference in behaviour. Reproduce code: --------------- $sql = "SELECT 0.000 as number"; $mysqli = new mysqli(...); $stmt = $mysqli->prepare($sql); $stmt->bind_result($number); $stmt->execute(); $stmt->store_result(); $stmt->fetch(); $stmt->close(); echo "$number\n"; $r = $mysqli->query($sql); $tmp = $r->fetch_array(); echo "$tmp[0]\n"; Expected result: ---------------- 0.000 0.000 Actual result: -------------- 0 0.000 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 14:00:01 2025 UTC |
By replacing the echo's with var_dump() calls, I get this: float(0) array(2) { [0]=> string(5) "0.000" ["number"]=> string(5) "0.000" } So what you think is truncation is simply how PHP handles floats. Try "echo 0.00;" for example. Assigned to Georg since this seems really inconsistent behaviour first. (perhaps just needs to be documented?)