[DBAL-121] Mapping, decimal returns float. Created: 12/Apr/11 Updated: 14/May/11 Resolved: 14/May/11 |
|
| Status: | Resolved |
| Project: | Doctrine DBAL |
| Component/s: | None |
| Affects Version/s: | 2.0.3 |
| Fix Version/s: | 2.0.5 |
| Type: | Bug | Priority: | Major |
| Reporter: | Tom Van Looy | Assignee: | Benjamin Eberlei |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Linux Ubuntu 10.10 x86_64, PHP 5.3.3-1ubuntu9.3, mysql Ver 14.14 Distrib 5.1.49 |
||
| Description |
|
I have a Doctrine 2 entity and the value is mapped like this (with regular getter/setter): /** * @Column(type="decimal", precision=40, scale=30) */ protected $someValue; /** * @return decimal */ public function getSomeValue() { return $this->someValue; } /** * @param decimal $someValue */ public function setSomeValue($someValue) { $this->someValue = $someValue; } When I set that value from my code, the value gets written into the database correctly. But, and that is my problem, when I get the value (via getter or \Doctrine\Common\Util\Debug::dump()), it always gives me a number with maximum 14 digits, and it rounds the value. I read the record with the default findById(). eg: with value 1234567890.012345678901234567890123456789 I have 1234567890.0123 I of course want all digits, not just 14. The field in MySQL is declared like this:
someValue decimal(40,30) NOT NULL,
When I get the value with raw PHP and mysql_query(), it returns correctly. It seems like the problem is that Doctrine returns a float: ["someValue":protected]=> float(234567890.01235) What's wrong, what should I check next, how to fix, any clues? |
| Comments |
| Comment by Benjamin Eberlei [ 12/Apr/11 ] |
|
ah yes, this is a bug. |
| Comment by Benjamin Eberlei [ 14/May/11 ] |
|
fixed |