私はこの単純な関数を作ったが、結果は0.5ではなく1を返す。私のMySQL関数は、小数点を掛け合わせるときに数学精度を完全に失います。何故ですか?
どうしたのだろうか?
DELIMITER //
DROP FUNCTION IF EXISTS test_decimal //
CREATE FUNCTION test_decimal(input DECIMAL)
RETURNS DECIMAL
BEGIN
SET @_credit = 0.5;
RETURN input * @_credit;
END //
DELIMITER ;
SELECT test_decimal(1);
'@の_credit'は*だけでなくDECIMALとして*入力された場合はどうなりますか? (つまり、偶然に何か他のものとタイプすることができますか?) –