|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2009-11-05 21:22 UTC] rasmus@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 21:00:01 2025 UTC |
Description: ------------ When dumping a float number, it is represented incorrectly. Generally, in some cases, PHP handles float numbers in invalid format. It is related to a setting of php.ini directive "precision". When a float number with one decimal place is dumped and high precision is set, it is not dumped in an original format, but in damaged one. Additional info: 32-bit system CPU: AMD Athlon64 Reproduce code: --------------- foreach (range(0, 30) as $precision) { ini_set('precision', $precision); echo $precision . ': '; var_dump(20.2); } Expected result: ---------------- 0: float(20) 1: float(20.2) 2: float(20.2) 3: float(20.2) 4: float(20.2) 5: float(20.2) 6: float(20.2) 7: float(20.2) 8: float(20.2) 9: float(20.2) 10: float(20.2) 11: float(20.2) 12: float(20.2) 13: float(20.2) 14: float(20.2) 15: float(20.2) 16: float(20.2) 17: float(20.2) 18: float(20.2) 19: float(20.2) 20: float(20.2) 21: float(20.2) 22: float(20.2) 23: float(20.2) 24: float(20.2) 25: float(20.2) 26: float(20.2) 27: float(20.2) 28: float(20.2) 29: float(20.2) 30: float(20.2) Actual result: -------------- 0: float(2.0E+1) 1: float(2.0E+1) 2: float(20) 3: float(20.2) 4: float(20.2) 5: float(20.2) 6: float(20.2) 7: float(20.2) 8: float(20.2) 9: float(20.2) 10: float(20.2) 11: float(20.2) 12: float(20.2) 13: float(20.2) 14: float(20.2) 15: float(20.2) 16: float(20.2) 17: float(20.199999999999999) 18: float(20.1999999999999993) 19: float(20.19999999999999929) 20: float(20.199999999999999289) 21: float(20.1999999999999992895) 22: float(20.19999999999999928946) 23: float(20.199999999999999289457) 24: float(20.1999999999999992894573) 25: float(20.19999999999999928945726) 26: float(20.199999999999999289457264) 27: float(20.1999999999999992894572642) 28: float(20.19999999999999928945726424) 29: float(20.19999999999999928945726424) 30: float(20.1999999999999992894572642399)