0
我有如下表如何插入浮點型變量在數據庫中正確
CREATE TABLE IF NOT EXISTS `payment_data` (
`orderid` int(11) NOT NULL,
`orderDesc` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`name` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`orderAmount` float NOT NULL,
UNIQUE KEY `orderid` (`orderid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
,我嘗試使用PHP它插入線。
$sql = 'INSERT INTO payment_data '.
'(orderid, orderDesc, name, email, orderAmount) '.
'VALUES ('.$form_order_id.', "'.$form_order_desc.'", "'.$form_name.'", "'.$form_email.'", '.number_format($form_order_amount, 2, '.', ',').')';
問題是,「orderAmount」插入時沒有小數部分。例如,如果$ form_order_amount = 30,45,那麼30是數據庫中插入的內容。
我使用了number_format(),因爲它應該將「30,45」轉換爲「30.45」。
您需要的浮動小數精度'orderAmount'浮動(7,2)'什麼desireable – 2014-10-01 08:41:06
'30,45'用','小數點是不是一個有效的數字給計算機;插入到MySQL時需要小數點('.') – 2014-10-01 08:42:11
也就是說,不要使用'float'作爲數據庫資金,請使用[decimal](http://dev.mysql.com/doc/refman/5.6/) en/precision-math-decimal-characteristics.html)....或甚至更好,將值調整爲分,以便您使用整數,如果您需要爲稅計算等進行調整等浮點精度可能會導致問題 – 2014-10-01 08:43:28