首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL之ROUND函数四舍五入陷阱

MySQL中,ROUND函数用于对查询结果进行四舍五入,不过最近使用ROUND函数四舍五入时意外发现并没有预期那样,本文将这一问题记录下来,以免大家跟我一样犯同样错误。...没办法,还得靠自己,这个时候最有用就是官网文档了,于是查询了mysql官方文档中关于ROUND函数部分,其中包含下面两条规则 For exact-value numbers, ROUND() uses...the “round half up” rule(对于精确数值,ROUND函数使用四舍五入) For approximate-value numbers, the result depends on...(对于近似值,则依赖于底层C函数库,在很多系统中ROUND函数会使用“取最近偶数”规则) 通过这两条规则,我们可以看出,由于我们在使用两个字段相乘时候,最终结果是按照float类型处理,而在计算机中...总结 从这个例子中可以看到,在MySQL中使用ROUND还是要非常需要注意,特别是当参与计算字段中包含浮点数时候,这个时候计算结果是不准确

81520

MySQL之ROUND函数四舍五入陷阱

[FullSizeRender 2] TOC 在MySQL中,ROUND函数用于对查询结果进行四舍五入,不过最近使用ROUND函数四舍五入时意外发现并没有预期那样,本文将这一问题记录下来,以免大家跟我一样犯同样错误...没办法,还得靠自己,这个时候最有用就是官网文档了,于是查询了mysql官方文档中关于ROUND函数部分,其中包含下面两条规则 For exact-value numbers, ROUND() uses...the “round half up” rule(对于精确数值,ROUND函数使用四舍五入) For approximate-value numbers, the result depends on...(对于近似值,则依赖于底层C函数库,在很多系统中ROUND函数会使用“取最近偶数”规则) 通过这两条规则,我们可以看出,由于我们在使用两个字段相乘时候,最终结果是按照float类型处理,而在计算机中...总结 从这个例子中可以看到,在MySQL中使用ROUND还是要非常需要注意,特别是当参与计算字段中包含浮点数时候,这个时候计算结果是不准确

1.8K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java四舍五入函数用法

    大家好,又见面了,我是你们朋友全栈君。...本文内容 介绍java中四舍五入函数用法 1.Math.ceil() 2.Math.floor() 3.Math.round() 1.Math.ceil() 向上舍入,将数值向上舍入为最接近整数;如...3.4舍入为4.0,3.6也舍入为4.0 2.Math.floor() 向下舍入,将数值向下舍入为最接近整数;如3.4舍入为3.0,3.6舍入为3.0 3.Math.round()...执行标准舍入,将数值四舍五入为最接近整数,即我们平时使用方法,如3.4舍入为3,3.5、3.6舍入为4 最后 可以关注一下我公众号,最近开始写公众号,我会在上面分享一些资源和发布一些csdn...上发布不了干货 点个关注是对博主最大支持 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143512.html原文链接:https://javaforall.cn

    1.4K20

    Python 四舍五入函数 round

    小数位四舍五入在项目中经常用到。 你可能有注意到 round 函数不能真正做到四舍五入。 round() 函数作用就是,返回浮点数x四舍五入值。...round( x [, n] ) 简单来说就是在浮点运算时候丢精度。...这个与计算机系统设计是有关系,计算机是使用 2 进制进行计算,如果我们常用数学计算或者科学计算,计算机是会丢精度。...因此我们解决方案其实非常简单就是使用 Decimal 来进行数学计算。 浮点计算丢精度问题不仅仅是 Python 会遇到问题,Java 、 C/C++ 都会遇到这个问题。...例如在 Java 中,我们会使用 BigDecimal 进行精确科学计算。 https://www.ossez.com/t/python-round/133

    97140

    MySQL datetime 时间字段四舍五入

    前言 如果不是踩到坑,我估计到现在还不知道时间字段会四舍五入。 1 背景 通过 Java 代码获取当日最大时间,然后存入数据库,数据库表字段格式 datetime 保留 0 位。...now.with(LocalTime.MAX) 小小一行代码,获取今天最大日期。 到数据库一看,好家伙,竟然存了第二天时间。 看着样子是四舍五入了!...直接使用 SQL 试一试: 这…… 果然是四舍五入了。 换成 MariaDB 试试!...docker pull mariadb docker run -d --name mariadb -p 33306:33306 -e "MYSQL_ROOT_PASSWORD=root" mariadb...3 结论 MySQL 时间如果传入值超过精度范围,会进行四舍五入。 MariaDB 时间如果传入值超过精度范围,会直接舍弃。 踩了个小坑。最后还是硬编码吧!

    1.9K20

    关于四舍五入:Round系列函数

    很多时候 我们需要对数字进行四舍五入计算 我们就以π为例吧 (我不会告诉你Excel里面有个函数专门函数PI) ROUND(数字,四舍五入位数) 我们可以四舍五入到2位小数 或者-1位小数...其实就是在十位对个位四舍五入 因为3小于5所以≈0 但是有些时候我们要不仅仅是四舍五入 我们有可能向上取整 (这时候用Roundup) 或者向下取整 (这时候用Rounddown) 向上up 向下down...很好记吧 ROUNDUP(数字,四舍五入位数) 向上取整,就是不管大小全部取最接近大于它数字 3.143对小数位第2位向上取整就是3.15 需要向上取整时候还是有很多 比如以前运营商给我们计算话费时间时候..."通话时长不足1分钟,按照1分钟统计" 对π不同向上取整 分别取2位小数向上取整 个位向上取整 十位向上取整 ROUNDDOWN(数字,四舍五入位数) 向下取整,向上取整反义词 可以理解为去掉后面那位数就好...3.143对第2位小数向下取整就是3.14,去掉3就好啦 向下取整场景还是非常多 例如老板给你算工资时候 "3456.78,零头就抹掉吧,算3456" 对π不同向下取整 就是不同抹零 抹到最后所有的就都是

    1.1K20

    round函数如何使用 四舍五入函数介绍及用法

    excel是微软office软件中十分常用一款,在过去几十年里,excel开发出了各种各样函数来辅助表格填写和运算,这些函数在实际工作中给人们带来了极大便利。...image.png 四舍五入函数介绍 四舍五入是round常见用法,在很多时候,人们对于一组数据需求仅限于几位小数,这时就需要对数字进行四舍五入,round函数可以快速大批量地解决一列数字四舍五入运算...四舍五入函数用法 作为函数,round函数与其他函数一样具有语法,即round(数据,位数),括号里前者是需要四舍五入数字,后者是四舍五入位数。...值得注意是,num_digits处所填入数据也可能为负数,此时该函数则会对number处所填数字小数点前对应部分进行四舍五入,例如round(1213.613,-2)=1200,这里对小数点前2位进行了四舍五入...这一函数在统计保留一位小数工资时能大大减轻工作量。 以上便是round函数,即四舍五入函数介绍及用法,通过这些可以大大提高工作效率,降低工作者在使用excel时工作量,为工作者减轻负担。

    1.7K10

    MySQL保存时间时居然四舍五入

    最近遇到一个数据库导致时间倒流问题,把时间插入数据库后,其他流程再读取出来,发现该时间落在了当前时间后面,看起来就是时间倒流。...经过排查后发现原来是因为MySQL支持小数秒(一般叫做分秒),但是数据库字段长度不够,导致了四舍五入 问题展示 插入不同大小小数秒可以看到四舍五入效果 CREATE TABLE `user_tenmao...(name, birth_time) values('tim2', '2021-06-03T20:26:42.715'); Query OK, 1 row affected (0.01 sec) mysql...set (0.00 sec) 插入时间是2021-06-03T20:26:42.215,到数据库后进位得到2021-06-03 20:26:42 保存小数秒 timestamp(2),后面的数字表示小数秒位数...), # 6位小数 PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ## 注意CURRENT_TIMESTAMP也需要对应位数

    1.5K20

    MariaDB MySQL变量取值避免四舍五入方法

    By:授客 QQ:1033553122 在一些对数据精确度要求比较高场景(比如资金结算)下,变量取值时不能对变量值进行四舍五入操作,这时候就要做些预处理工作。...方法1:利用TRUNCATE(D, X)函数 方法2:利用FLOOR(X)函数 举例说明: DROP PROCEDURE IF EXISTS test_proc; DELIMITER // CREATE...PROCEDURE test_proc() BEGIN DECLARE var_name1 DECIMAL(6, 4); # 定义局部变量,包括小数点总7位,小数部分占4位,整数部分最多占2位...#方法2: SET var_name3 = FLOOR(99.456789 * 10000) / 10000; # FLOOR(X) 返回小于X最大整数 SELECT var_name1 AS '...四舍五入值', var_name2 AS '利用TRUNCATE函数截取值', var_name3 AS '利用FLOOR函数截取值'; END; // DELIMITER ; CALL test_proc

    71430

    MySQL对小数进行四舍五入等操作

    数学函数MySQL中常用一类函数。其主要用于处理数字,包括整型和浮点数等等。 MySQL常用四舍五入函数函数说明 FLOOR(X) 返回不大于X最大整数。...CEIL(X)、CEILING(X) 返回不小于X最小整数。 ROUND(X) 返回离X最近整数,截断时要进行四舍五入。 ROUND(X,D) 保留X小数点后D位值,截断时要进行四舍五入。...SELECT CEIL(1.3); -- 输出结果:2 SELECT CEILING(1.8); -- 输出结果:2 4、ROUND(X)函数 返回离X最近整数,截断时要进行四舍五入。...SELECT ROUND(1.3); -- 输出结果:1 SELECT ROUND(1.8); -- 输出结果:2 5、ROUND(X,D)函数 保留X小数点后D位值,截断时要进行四舍五入。...D位值,截断时不进行四舍五入

    40130

    MySQL常用函数

    MySQL常用函数 关于时间和字符串类型函数差不多已经介绍完了,今天补充一些常用函数。...1.条件判断函数if和ifnull if函数用法是:if(expr,value1,value2),首先判断表达式值,然后根据表达式值返回value1和value2当中某一个。...conv函数讲数值进行进制之间转换,conv函数原型是conv(value,from_base,to_base),value值可以是一个数字或者字符串,如果是一个字符串而且不规范的话...这个转换是个相互过程,包含两个函数,一个是inet_aton(expr),另外一个是inet_ntoa(expr)函数,这两个函数使用方法如下: root@localhost:3306 [(...类似show processlist,select version(),select user(),select database()等等,没有写,这些想必也都知道,关于mysql内置函数这部分大概就这几天四篇文章吧

    1.1K10

    Mysql常用函数

    每天早上七点三十,准时推送干货 在开发中,数据库种类千奇百怪,有各种,比如早期 SQLServer,Mysql,Oracle,现在还有许多国产数据库,但是有不少开发还是使用 Mysql,但是对于...Mysql各种各样函数,用却是没有那么多,今天了不起就来带着大家一起看看这个 Mysql 各种常用函数。...聚合函数MySQL中,聚合函数主要由:count,sum,min,max,avg,这些聚合函数我们之前都学过,不再重复。...数学函数 round(x,保留位数)函数 四舍五入; 当对正数进行四舍五入:按照正常计算方式,四舍五入即可。...当对负数进行四舍五入:先把符号丢到一边,对去掉负号后正数进行四舍五入,完成以后,再把这个负号,补上即可。

    18910
    领券