我需要一个数学函数/公式/表达式来取一个数字作为参数,找到以某些大于参数的数字结尾的最小数字。
例如,如果结束数字应为88,则这些是我想要的一些例子:
f(0) = 0
f(87) = 88
f(88) = 88
f(89) = 188 //NB: NOT 88*2=176
f(187) = 188
f(188) = 188
f(189) = 288
等等。你明白了。
到目前为止,我已经使用了一个函数(在Delphi中,我没有实现)这样做:
function RoundToSpecificEndingDigits(aLength,aModMeasure : double) : double;
begin
Result := aModMeasure;
while Result < aLength do Result := Result + 100;
end;
现在我需要一个更加“数学”的方法,包括div和mods和rounds等。原因是我想在SQL中完成而不创建函数。
答案 0 :(得分:1)
这样的事情怎么样:
在SQL中:
SELECT
CEIL(
(num - suffix) / POW(10, LENGTH(suffix))
) * POW(10, LENGTH(suffix)) + suffix