DELIMITER // CREATE FUNCTION MY_TEST666( i_num DECIMAL(30,6), i_point INT ) RETURNS VARCHAR(50) DETERMINISTIC BEGIN DECLARE result VARCHAR(50); IF i_num >= 100000000 THEN SET result = CONCAT(ROUND(i_num / 100000000, i_point), '亿'); ELSEIF i_num >= 10000 THEN SET result = CONCAT(ROUND(i_num / 10000, i_point), '万'); ELSE SET result = ROUND(i_num, i_point); END IF; RETURN result; END// DELIMITER ; -- 调试 SELECT MY_TEST666(123456789.123456, 2); 返回 1.2300000000亿 但: select CONCAT(ROUND(123456789.123456 / 100000000, 2), '亿'); 返回:1.23亿