double (3,3) > sending 1.3 > stored 0.999 It is knocking my socks off...
MySQL DB

weight is defined as double (3,3)

INSERT INTO xxx (`weight`) VALUES ( 1.3)


why does the DB store 0.999?
(3,3) indicates a total length of 3 digits, with 3 decimal places.  Perhaps you want (6,3).

See the MySQL Docs for details.