I don't know if this is a bug or expected behavior, but the following unit test passes against all logic:
public function testPHPIsBroken()
{
$this->assertEquals((int)(2.04 * 100), (int)(2.05 * 100));
}
This is using PHP 5.4.7. Is there something obvious about how decimal numbers work that I should know as a programmer in order to avoid this. Currently all monetary values in my project are set like this, which could result in some serious egg on my face...