SQL Server 中的 *UP* 舍入到最接近的 100
在 SQL Server 中是否可以轻松地将数字向上舍入到最接近的 100(或 1000、500、200 等)?
所以:
720 -> 800
第790章800
第1401章1500
Is it possible to easily round a figure up to the nearest 100 (or 1000, 500, 200 etc.) in SQL Server?
So:
720 -> 800
790 -> 800
1401 -> 1500
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(17)
这对我来说效果很好。
回合(@value/100, 0) * 100
This worked fine for me.
Round(@value/100, 0) * 100
无论您想要四舍五入到什么数字,只需在此处发布该数字即可,而不是
100
。Whatever number you want to round to, just post that instead of
100
here.我在mssql中创建了一个函数它可以帮助你
i have create a function in mssql it can help you
试试这个代码
round(yourvalue , -2)
解释=>当我们在舍入函数中提到 -ve 时,它会对值进行四舍五入并使其为零
示例 =>round(1238283.9827398 ,-2) 给出输出 =>1238300.0000000
try this code
round(yourvalue , -2)
Explaination=> when we mentioned -ve in round funtion it rounds the values and make zero
Example=>round(1238283.9827398 ,-2) gives output=>1238300.0000000
SELECT ROUND(Number,-2)
用于舍入最接近的第 100 个位置SELECT ROUND(Number,-3)
用于舍入最接近的第 100 个位置SELECT ROUND(Number,-2)
for rounding nearest hundredth positionSELECT ROUND(Number,-3)
for rounding nearest thousandth position以下应该有效。读完你的问题后,我不太确定你想要 100 返回什么。对于此 100 返回 100。
这给出以下结果:
The following should work. After reading your question, I'm not exactly sure what you want 100 to return. For this 100 returns 100.
This gives the following results:
要四舍五入到最接近的千位,请尝试以下操作:-
For rounding Up to the nearest thousand, try the following:-
一种选择是使用 CEILING() 函数,如下所示
:可能需要首先将您的值转换为小数,具体取决于其类型。
One option would be to use the CEILING() function like this:
You may need to convert your value to a decimal first depending on its type.
使用 CEILING 函数对数字进行四舍五入
Use CEILING function to round a figure up
试试这个:
Try this:
只需使用
ROUND
函数即可非常简单地将数字舍入为最接近 10 的任意倍数例如:
这将为您提供最接近的千分之一值。
It is very simple to round a number to any multiple of nearest 10 by using simply the
ROUND
functionfor ex:
This will give you the nearest thousandth value.
这也适用于带小数的值。
选择楼层((ceiling (@value) + 99) / 100) * 100;
This will work for the values with decimal also.
select floor((ceiling (@value) + 99) / 100) * 100;
它适用于整数值:
例如,
如果您想向上舍入到最接近的 500,则
It works fine for integer value:
For example
If you want to round up to the nearest 500 then
没有原生函数可以做到这一点,但有许多简单的数学技巧可以做到这一点。一个例子:
There's no native function that will do this, but there are any number of simple math tricks that will. An example:
您可以使用此代码,假设您的
amount
是一个 int。如果不是,您将需要进行强制转换,以便获得整数除法。您可能希望将其打包到用户定义函数。
You can use this code, assuming your
amount
is an int. If not you will need to cast, so you get integer division.You might want to package this into a user defined function.
通用解决方案 - 使用 MOD 找到最后 100 位,然后将结果加 100。
如果您需要下一个第 80 位,只需将任何“100”替换为“80”即可。
A generic solution - Use MOD to find the last 100th place and then add 100 to the result.
If you need the next 80th place, just replace any "100" with "80".
除了Gray的答案之外,
我将使用以下内联函数:
参数定义:
使用该函数
:它也可以用作应用它与表格
例如:
In addition to Gray's answer,
I'd use the following inline function:
Parameter Definition:
using the function:
it can also be used as apply it versus a table
such as: