AttributeType::Number giving validation error "Must be an integer"
Not really documented anywhere, but AttributeType::Number can accept an array of options, including min, max and decimal.  You're looking for the last one.

AttributeType::Number =&gt; array('min' =&gt; 0, 'max' =&gt; 10, 'decimals' =&gt; 2);