我有一个Oracle函数。由于隐私问题,我无法包含整个功能,但相关行是:-
WHEN in_tariff_length = 36 THEN round( ( ( (in_agreed / 100) * 80) * in_uplift) / 100,2) * 3
四舍五入到小数点后2位,并返回1655.58
当我使用时
WHEN in_tariff_length = 36 THEN round( ( ( (in_agreed / 100) * 80) * in_uplift) / 100,3) * 3
四舍五入到小数点后3位,并返回1655.568
我需要的结果是1655.57。
所有发送到函数和从函数返回的值都是NUMBER。
你不能四舍五入,乘以3得到1655.57
551.86 * 3 = 1655.58
551.856 * 3 = 1655.568
1655.57 / 3 = 551.856666667
我建议先乘,然后取整。
请仔细查看第二个函数
round( ( ( (in_agreed / 100) * 80) * in_uplift) / 100,3)
Round( something, 3)
表示四舍五入小数点后3位,但不表示二舍五入