什么是“正确”的转换方式
string(5) "-2,23"
我可以在 DECIMAL(5,2)
Mysql 列中插入一个值?
我尝试过转换为 float、floatval 等...它们似乎都没有保留小数。
是因为逗号吗?我可以用“.”来str_replace
它。如果需要但不愿意,我可能会遇到类似 "-1.200,23"
最佳答案
是的,逗号错了。
你可以这样插入
CREATE TABLE `testdec` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`d` decimal(5,2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `testdec` (`id`, `d`)
VALUES
(1, -2.23);
或者将逗号更改为点
INSERT INTO `testdec` (`id`, `d`)
VALUES
(2, REPLACE("-2,23",",","."));
但是要小心。仅当字符串中没有其他点(如“1.000,12”)时,此方法才有效。
如果字符串中可以有点,请执行以下操作:首先删除点,然后将逗号更改为点
SELECT REPLACE( REPLACE("-456.123,23",".","") ,",",".") ;
关于mysql - 将具有负值和小数的字符串转换为正确的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34973853/