我正在尝试创建像 -
这样的数据库函数CREATE DEFINER=`root`@`localhost` FUNCTION `lb2oz`(`lb` FLOAT) RETURNS float
BEGIN
DECLARE preLb FLOAT;
SET preLb = FORMAT(lb,0);
RETURN preLb+ROUND(((lb - preLb)/16*100), 2);
END
当我拨打lb2oz(25.04)它返回25.25时,它没问题。 但是当我打电话给lb2oz(25.01)时它会返回25.059999465942383。有什么问题?
我已经使用过DECLARE preLb FLOAT(10,2);
和DECLARE preLb DOUBLE;
,但问题仍然存在。
答案 0 :(得分:0)
尝试DOUBLE而不是FLOAT
CREATE DEFINER=`root`@`localhost` FUNCTION `lb2oz`(`lb` DOUBLE) RETURNS double
BEGIN
DECLARE preLb DOUBLE;
SET preLb = FORMAT(lb,0);
RETURN preLb+ROUND(((lb - preLb)/16*100), 2);
END