如何在SQL中实现Excel的RoundUp函数效果,将0.04268480693845取整为0.0428?
实现按指定步长向上取整到0.0428的SQL方案
你要的结果本质是按0.0002的增量步长向上取整到最近的倍数,而非常规的保留4位小数向上取整。原数0.04268480693845除以0.0002等于213.42403469225,向上取整后为214,再乘以0.0002就能得到你要的0.0428。
解决方案代码
DECLARE @mynumber float = 0.04268480693845 DECLARE @step float = 0.0002 -- 定义目标步长 SELECT @mynumber AS MyNumber, CEILING(@mynumber / @step) * @step AS TargetResult
如果步长固定为0.0002,也可以直接写死计算:
DECLARE @mynumber float = 0.04268480693845 SELECT @mynumber AS MyNumber, CEILING(@mynumber / 0.0002) * 0.0002 AS TargetResult
为什么之前的方法不生效
你之前使用CEILING(@mynumber * 10000)/10000是按0.0001的步长向上取整,所以得到0.0427,这和你需要的0.0002步长不匹配,因此无法得到目标结果。
内容的提问来源于stack exchange,提问作者Data_Science_Mick
相关产品推荐
相关产品推荐

