Storing NULL values using the following code does not work.
Because of the defintion in ezcontentclassattribute.php the null-values are being replaced in favor of the defined default_value, which is 0 (zero) for all numeric based datatypes.
Should store the assigned value 'null' into database.
eZFloat, eZInteger, ... (numeric based) datatypes is usable when the empty string is replaced with null. If a contentclass-attribute is marked 'not required', the database really stores null and not some faked 0 (zero) value which is NOT the value the user has typed in.
Create a contentclass, use eZInteger or eZFloat or any other Datatype. This Datatype can be a core datatype or submitted by the community.
The used Datatype should not be required. Min/Max/Default must be left empty.
Create a contentobject using this class.
Do not type anything in.
The value (data_int3, data_float3) have 0 (zero) as value which is obviously wrong by the database definition which can have NULL values.