舍入到最接近的10次乘法

时间:2015-01-26 16:58:36

标签: sql tsql math formula

我的sql代码有一些数学问题。我希望能够使用数学公式在我的代码中解决以下问题,如果有人知道我想知道的话。

任意数字1-> 99: 10

任意数字100-> 999: 100

任意数字1000-> 9999: 1000 ...

无论如何只是从值中计算出10乘数?我觉得这应该是一个简单的公式,但我似乎无法得到它。

由于

2 个答案:

答案 0 :(得分:4)

这个怎么样?

SELECT POWER(10, CONVERT(INT, LOG10(@Input)))

它取输入值的对数基数10(它返回你必须将10加到的指数的值才能得到输入值),然后它会减去小数部分只留下整数,然后将10增加到那个力量。

答案 1 :(得分:3)

你只需要日志和他们的对面(权力)......

power(10, floor(log10(x)))

如下......

log10(99) = 1.9956351946

floor(1.9956351946) = 1

power(10, 1) = 10

但是,这确实假设您的示例有误并且1 -> 9应该“舍入”为1 ......

log10(9) = 0.95424250943

floor(0.95424250943) = 0

power(10, 0) = 1