如何在MySQL中向下舍入到最接近的整数?

8wigbo56  于 12个月前  发布在  Mysql
关注(0)|答案(9)|浏览(102)

如何在MySQL中向下舍入到最接近的整数?
示例:12345.7344 rounds to 12345
mysql的round()函数向上舍入。
我不知道这些值有多长,也不知道小数点后的位数,可能是10位小数点后4位,也可能是2位小数点后7位。

nfs0ujit

nfs0ujit1#

使用地板:

SELECT FLOOR(your_field) FROM your_table

字符串

ni65a41a

ni65a41a2#

使用FLOOR()。
它会将你的小数四舍五入到更小的整数。示例:

SELECT FLOOR(1.9) /* return 1 */
SELECT FLOOR(1.1) /* return 1 */

字符串

其他有用的舍入

如果你想将小数点舍入到最接近的整数,可以使用ROUND()。示例:

SELECT ROUND(1.9) /* return 2 */
SELECT ROUND(1.1) /* return 1 */


如果你想把小数舍入到大整数,可以使用CEILING()。示例:

SELECT CEILING(1.9) /* return 2 */
SELECT CEILING(1.1) /* return 2 */

bybem2ql

bybem2ql3#

SELECT FLOOR(12345.7344);

字符串
点击此处了解更多信息。

0md85ypi

0md85ypi4#

SUBSTR在某些情况下会比FLOOR更好,因为FLOOR有一个“bug”,如下所示:

SELECT 25 * 9.54 + 0.5 -> 239.00

SELECT FLOOR(25 * 9.54 + 0.5) -> 238  (oops!)

SELECT SUBSTR((25*9.54+0.5),1,LOCATE('.',(25*9.54+0.5)) - 1) -> 239

字符串

myzjeezk

myzjeezk5#

FLOOR()函数将返回小于或等于数字的最大整数值。

example :
SELECT FLOOR(columnName) FROM tableName;

字符串

cidc1ykv

cidc1ykv6#

可以通过以下两种方式实现:

  • 第一个月
  • select round(desired_field_value-0.5) from table

第二种解释:假设12345.7344是整数,那么12345.7344 - 0.5 = 12345.2344,四舍五入后的结果就是12345。

ctehm74n

ctehm74n7#

试试这个

SELECT SUBSTR(12345.7344,1,LOCATE('.', 12345.7344) - 1)

字符串

SELECT FLOOR(12345.7344)

SQLFiddle Demo

xqk2d5yq

xqk2d5yq8#

Both Query用于在MySQL中向下取整最近的整数

  1. SELECT FLOOR(445.6);
  2. SELECT NULL(222.456);
iih3973s

iih3973s9#

如果你需要小数可以用这个

DECLARE @Num NUMERIC(18, 7) = 19.1471985
SELECT FLOOR(@Num * 10000) / 10000

字符串
输出:19.147100清除:985添加:00
或者使用这个:

SELECT SUBSTRING(CONVERT(VARCHAR, @Num), 1, CHARINDEX('.', @Num) + 4)


输出:19.1471清除:985
或者使用这个:

SELECT CONVERT(INT, 19.99999)


产量:19
这一点:

SELECT FLOOR(19.99999)


产量:19

相关问题