MySQL数据库varchar字段求和出现精度丢失
问题描述
在MySQL数据库中,将varchar字段用于数值运算时,会将其转换为数值类型进行计算。然而,由于varchar字段的可变长度特性,可能存在数值精度丢失的问题。
我用varchar类型存储学生的分数,分数有两位小数,求和时会出现精度丢失。
CREATE TABLE test (grade VARCHAR(10)
);INSERT INTO test (value) VALUES ('78.99'), ('88.22'), ('66.88');SELECT SUM(value) FROM test;
上述示例中,我们创建了一个名为test的表,并向其中插入了三条记录,分别为78.99、88.22和66.88。然后,我们使用SUM函数对grade字段进行求和操作。结果是:

问题原因
这个问题的根本原因在于浮点数的存储和计算方式。在计算机中,浮点数是以二进制形式存储的,而二进制无法精确表示十进制小数。因此,在进行浮点数运算时,可能会产生舍入误差,从而导致精度丢失。
在上述示例中,78.99、88.22和66.88这三个数值在二进制表示中无法精确表示,导致了舍入误差的产生。虽然这种误差在单个数值中可能并不明显,但当进行累加运算时,误差会逐步累积,最终导致了精度丢失。
解决办法
1、可以使用DECIMAL数据类型来替代varchar字段。DECIMAL是一种精确数值类型,可以精确表示十进制数值,这样就一劳永逸了。但是项目要求不能更改的话,怎么办?
2.
1).使用cast函数,将varchar或char类型转换成decimal类型在进行计算
select sum(cast(grade as decimal(10,2)))from table
其中decimal中的10代表除了小数位,最多的数据有效位数,也就是说最大可以是99999999.99
后面的2代表精度,也就是小数有效位,当数据的有效位大于2时,则进行四舍五入运算,小于2时补0填充位数
2).另一个类似的函数:convert
select grade from TABLE order by CONVERT (grade, DECIMAL) desc
相关文章:
MySQL数据库varchar字段求和出现精度丢失
问题描述 在MySQL数据库中,将varchar字段用于数值运算时,会将其转换为数值类型进行计算。然而,由于varchar字段的可变长度特性,可能存在数值精度丢失的问题。 我用varchar类型存储学生的分数,分数有两位小数ÿ…...
C++入门 第二篇( 引用、内联函数、auto关键字、指针空值nullptr)
目录 6. 引用 6.1 引用概念 6.2 引用特性 6.3 常引用 正确用法:权限 缩小/平移 6.4 使用场景 1. 做参数 2. 做返回值 3.传值、传引用效率比较 6.5引用问题举例 6.6 反汇编中的& 6.7 引用和指针的不同点: 7.内联函数 7.1 内联函数与宏对…...
2023年煤气证模拟考试题库及煤气理论考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2023年煤气证模拟考试题库及煤气理论考试试题是由安全生产模拟考试一点通提供,煤气证模拟考试题库是根据煤气最新版教材,煤气大纲整理而成(含2023年煤气证模拟考试题库及煤气理论考…...
嵌入式面试经典30问
嵌入式面试经典30问 很多同学说很害怕面试,看见面试官会露怯,怕自己的知识体系不完整,怕面试官考的问题回答不上了,所以今天为大家准备了嵌入式工程师面试经常遇到的30个经典问题,希望可以帮助大家提前准备࿰…...
C++ 八股文: 构造函数
什么是构造函数 构造函数(Constructor)是一种特殊的成员函数,用于在创建对象时进行初始化。它的作用是确保对象在创建后处于一个合法和可用的状态。构造函数在类定义中声明,其名称与类名相同,但不带返回类型。 写一个…...
自动切割短视频的软件推荐,一键生成1000条短视频,支持六大主流平台矩阵分发,快来免费试用
经过小编的多方测评,今天给大家推荐一款性价比、好评率、专业性全都超高的软件——超级编导批量剪辑软件,更重要的是这款软件支持免费试用,一起来看看超级编导如何帮助大家自动分割视频的吧。 复制视频链接,一键上传视频素材后&am…...
从零开始学习秒杀项目
构思了很多种讲述这个简易版的秒杀项目的思路,比如按照功能分类,按照项目亮点串起来讲述,总觉得不适合基础薄弱的同学来学习,所以本项目按照从搭建开始,过程中需要什么来学习什么。 技术栈 SpringBootmybatisPlus&am…...
儿童珠宝首饰上亚马逊美国站合规标准是什么?如何办理?
儿童珠宝首饰 儿童珠宝首饰指原则上由 12 岁及以下儿童作为装饰品移除或穿戴的商品。本政策涵盖的儿童珠宝首饰,包括但不限于脚链、手链、耳环、项链、戒指、珠宝首饰制作或维修套装以及钟表。 亚马逊儿童珠宝首饰政策 亚马逊要求所有儿童珠宝首饰均经过检测并符合…...
ORACLE 19C PDB FOR MYSQL 5.7 部署ogg
一、--软件配置 角色 数据库/软件版本 OGG版本 IP ---------- ----------------- ------------------------------- ----------- 源端服务器 Oracle Datbase 19 Oracle C##GOLDENGATE 19.1.0.0.4 10.10.10.32 目标服务器 MYSQ…...
前端 html 中的 meta 标签有哪些用处?
HTML中的<meta>标签用于提供有关文档的元数据(metadata),它们不会在页面上显示出来,而是提供有关页面的信息,使搜索引擎和浏览器能够更好地理解和使用文档。下面是一些常见的用途: 1、指定文档的字符…...
罗技鼠标接收器丢失或损坏后用另一个接收器配对的方法
本文介绍罗技鼠标在丢失、损坏其自身原有的接收器后,将另一个新的接收器与原有鼠标相互配对的方法。 在开始之前,大家需要首先查看两个内容:首先是原有的鼠标——大家需要查看自己的鼠标(罗技键盘也是同样的操作)底部&…...
Python语法
文章目录 一、Python基础1. 数据类型和变量2. 字符串和编码字符编码Python的字符串格式化 3. list和tuplelisttuple 4.条件判断5. 模式匹配6. 循环7. dict 和 setdictset 二、函数1. 调用函数2. 定义函数3. 函数的参数4. 递归函数 三、高级特性四、函数式编程1. 高阶函数2. 返回…...
电脑经营商城小程序的作用是什么
电脑是企业办公必备的工具,同时很多家庭都有配备,无论笔记本还是台式在各场景中应用都非常广泛,市场各类品牌也很多,区别于以前店内购买,现在不少消费者会选择线上电商平台购买,也因此如今电脑经销商或品牌…...
森海塞尔EW-DP SKP直插式发射机:真正的无失真录制
韦德马克,2023年9月15日 – 10月底,EW-DP系列将再添新品——EW-DP SKP直插式发射机,面向摄像师、广播电视公司和电影制作人。板载32位浮点录制,结合该系列领先的134 dB发射机动态范围,让音频失真不复存在。无论要在现场…...
通过小程序实现会议Oa的会议展示以及个人中心
🏅我是默,一个在CSDN分享笔记的博主。📚📚 🌟在这里,我要推荐给大家我的专栏《微信小程序 》。🎯🎯 🚀无论你是编程小白,还是有一定基础的程序员,…...
STM32驱动GY-39监测环境温度,湿度,大气压强,光强度
目录 模块简介模块测试接线代码测试现象 总结 模块简介 GY-39 是一款低成本,气压,温湿度,光强度传感器模块。工作电压 3-5v,功耗小,安装方便。 其工作原理是,MCU 收集各种传感器数据,统一处理&…...
在华为和比亚迪干了5年测试,月薪25K,熬夜总结出来的划水经验.....
先简单交代一下背景吧,某不知名 985 的本硕,17 年毕业加入华为,之后跳槽到了比亚迪,一直从事软件测试的工作。之前没有实习经历,算是5年的工作经验吧。 这5年之间完成了一次晋升,换了一家公司,…...
Mac 使用 scp 上传或下载文件/文件夹
目录 上传文件到远程服务器 scp 本地文件路径 远程用户名远程IP:远程目标目录上传文件夹到远程服务器 scp -r 本地文件夹 远程用户名远程IP:远程目标目录从远程服务器下载文件 scp 远程用户名远程IP:远程文件路径 本地目标目录从远程服务器下…...
Restful 风格
目录 Restful风格创建springboot项目SpringMVC开发Restful接口1、获取所有的员工思路代码RequestMappingGetMapping 2、获取单个员工思路代码注意: 3、删除员工数据思路:代码单个删除批量删除 4、更新员工数据思路: 5、jQuery发送请求发送del…...
LLM 系列 | 21 : Code Llama实战(上篇) : 模型简介与评测
引言 小伙伴们好,我是《小窗幽记机器学习》的小编:卖热干面的小女孩。 个人CSDN首页:JasonLiu1919_面向对象的程序设计,深度学习,C-CSDN博客 今天开始以2篇小作文介绍代码大语言模型Code Llama。上篇主要介绍Code Llama的基本情况并基于Hug…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
