我有一个Oracle功能。由于隐私问题,我不能包括整个功能,但相关的是: -
WHEN in_tariff_length = 36 THEN round( ( ( (in_agreed / 100) * 80) * in_uplift) / 100,2) * 3
..which四舍五入到小数点后2位,返回1655.58
我用的时候
WHEN in_tariff_length = 36 THEN round( ( ( (in_agreed / 100) * 80) * in_uplift) / 100,3) * 3
..which四舍五入到小数点后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位但不是2位