所以我看到这个问题有一个很好的答案,但我想无论如何都要四舍五入,而不是无论如何都要四舍五入。例如,在转换 int 之前向其添加 1 是行不通的,因为它会将 5.0“四舍五入”为 6.0。
那么我应该如何ceil
在 SQLite 中实现呢?
这个怎么样?
select (case when x = cast(x as int) then cast(x as int)
else 1 + cast(x as int)
end)
这将更优雅地为您提供相同的答案:
SELECT CAST(x+1-1e-n AS INT);
(假设您的精度不会大于n小数点)
使用 php 你可以很容易地:
$db->createFunction('ceil', 'ceil', 1);
$db->createFunction('floor', 'floor', 1);
select ceil(\`column`) from table;
一些有用的答案,我发现这个解决方案也很简单。
select round(column+0.5) from table;
这意味着如果您的原始数字 < 0.5,您总是向上舍入,或者如果您的原始数字 > 0.5,则向下舍入