MySQL数据库功能不起作用?

时间:2017-07-23 12:04:30

标签: mysql

我正在尝试创建像 -

这样的数据库函数
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;,但问题仍然存在。

1 个答案:

答案 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