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

mysql 货币用整型

基础概念

MySQL中的整型数据类型主要包括TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT等。这些类型用于存储整数,不包含小数部分。货币通常是一个精确的数值,因此在数据库设计中,使用整型来存储货币值是一种常见的做法,尤其是当货币的最小单位是“分”时。

相关优势

  1. 存储效率:整型数据占用的存储空间较小,对于大量数据的存储和查询效率较高。
  2. 计算简单:整型数据的加减乘除运算比浮点型数据更为精确和快速。
  3. 避免精度问题:使用浮点型存储货币可能会遇到精度丢失的问题,而整型则可以完全避免这一问题。

类型

  • TINYINT: 1字节,范围从-128到127(有符号)或0到255(无符号)。
  • SMALLINT: 2字节,范围从-32768到32767(有符号)或0到65535(无符号)。
  • MEDIUMINT: 3字节,范围从-8388608到8388607(有符号)或0到16777215(无符号)。
  • INT: 4字节,范围从-2147483648到2147483647(有符号)或0到4294967295(无符号)。
  • BIGINT: 8字节,范围从-9223372036854775808到9223372036854775807(有符号)或0到18446744073709551615(无符号)。

应用场景

在电商、金融、会计等需要精确计算的系统中,使用整型存储货币值是非常合适的。例如,存储用户的账户余额、商品的价格等。

遇到的问题及解决方法

问题:为什么不用浮点型存储货币?

原因:浮点型数据在计算机内部是以近似值的形式存储的,这可能导致精度丢失,尤其是在进行货币计算时,这种精度丢失可能会导致财务上的错误。

解决方法:使用整型存储货币值,并将货币的最小单位设为“分”。例如,100.50元可以存储为10050分。

问题:如何处理货币的显示和输入?

解决方法:在应用程序层面进行货币的格式化和解析。例如,在显示时将整型的“分”转换为“元”,并添加小数点;在输入时将用户输入的“元”转换为“分”并存储到数据库中。

示例代码

以下是一个简单的示例,展示如何在MySQL中创建一个使用整型存储货币值的表,并进行基本的插入和查询操作:

代码语言:txt
复制
-- 创建表
CREATE TABLE user_account (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    balance INT NOT NULL DEFAULT 0 COMMENT '余额,单位:分'
);

-- 插入数据
INSERT INTO user_account (user_id, balance) VALUES (1, 10050); -- 插入100.50元

-- 查询数据并转换为元显示
SELECT user_id, balance / 100 AS balance_in_yuan FROM user_account;

参考链接

通过以上方法,可以有效地使用整型数据类型来存储和处理货币值,确保数据的精确性和系统的稳定性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL整型数据类型详解

对整数类型, MySQL 还支持类型名称后面的小括号内指定的显示宽度,例如int(5) 表示宽度小于5位时填满宽度,如果不显示指定宽度默认是int(11),一般配合zerofill使用下面来描述下 --...对于小数表示, MySQL分为浮点数和定点数   浮点数包括float,double。 定点数decimal 它是以字符串形式存放的,比浮点数精确, 用于倾向等精度高的数据。   ...MySQL 整型类型 数据格式:类型  [(M)]  [UNSIGNED]  [ZEROFILL] TINYINT M默认值为4 8位二进制数。 带符号数据范围:-128 到 127。...注意 我们进行数据表设计时,喜欢用 bigint(20)、int(10)、tinyint(2)之类的数据类型,类型后的数字并不表示数据存储长度,而是表示字段要显示的长度,只有在字段设置为 zerofill...BOOLEAN MySQL 会将 BOOLEAN 类型转换为 TINYINT(4)。

81920
  • 【重学 MySQL】五十四、整型数据类型

    【重学 MySQL】五十四、整型数据类型 在MySQL中,整型数据类型用于存储整数值,它们的主要特点是能够存储不同范围和精度的整数,并且可以通过索引和约束来提高数据的查询性能。...ZEROFILL 描述:ZEROFILL属性用于指定当整数的显示宽度不足时,用0在左边填充至指定宽度。...综上所述,MySQL整型数据类型具有UNSIGNED、ZEROFILL、显示宽度(M)和AUTO_INCREMENT等可选属性。...适合场景 在MySQL中,不同的整型数据类型适用于不同的场景,以下是对各整型数据类型适用场景的详细归纳: TINYINT 适用场景:TINYINT类型适用于存储非常小的整数值,通常用于存储布尔值(0或1...综上所述,在选择MySQL整型数据类型时,应根据实际数据的范围和精度来选择最合适的类型。

    16510

    用虚拟货币匿名注册域名

    以比特币为首的P2P虚拟货币颠覆了人们对货币的认知,也为网上交易提供了新的途径。...而如今,虚拟货币为域名购买提供了更加安全的途径。 二、有哪些支持虚拟货币支付的域名注册商 经过不完全的搜集,本文统计了20余个目前支持比特币等虚拟货币作为支付手段的域名注册商。...目前支持的虚拟货币支付的域名注册商详见下表: ? 从地域上来看,美欧澳非的主流域名注册商基本都已接受虚拟货币的支付,暂未发现有亚洲的域名注册商支持。...从各国对比特币等虚拟货币的态度上来看,暂无国家明确将其认定为货币,但很多国家承认其合法地位并允许其用于交易市场。...三、虚拟货币支付的匿名性 虚拟货币支付保护了合法用户的身份隐私,避免了支付信息泄露造成用户的经济损失,但也有很多不法分子利用虚拟货币支付的匿名性购买域名,从事非法活动,使得网络安全人员和有关部门难以进行资金链的追踪溯源

    6.5K50

    用Python抓取非小号网站数字货币(一)

    一、环境 OS:win10 python:3.6 scrapy:1.3.2 pymongo:3.2 pycharm 环境搭建,自行百度 二、本节内容说明 本节主要抓取非小号收录的所有数字货币的详情链接和数字货币名称...货币详情页链接 非小号大概收录了1536种数字货币的信息: 为了后面抓取详细的信息做准备,需要先抓取详情页的地址,所以我们对于数字货币的链接地址数据库设计,只需要货币名称和对应的URL即可,然后是id...如下: 四、抓取说明 由于非小号网站在首页提供了显示全部数字货币的功能,所以我们没有必要分页抓取,偷个懒: 后面的抓取直接使用显示全部数字货币的链接: 1....页面分析 查看页面的信息,可以发现所有的数字货币的信息都在一个table里面: 而每一个数字货币的详细地址和名称都在它的第一个a标签里面: 所以我们只需要先抓取到每一个数字货币的a标签的内容就可以,...从页面元素可以知道,每个数字货币的Item下面除了有一个我们需要是a之外,还有很多其他的信息也是放到a标签里面: 而这些a标签显然是不符合我们上面提取信息的正则表达式的,所以通过上面的正则表达式,获取到的信息为空

    2.1K60

    MySQL和Java中的货币字段类型选择

    引言 在互联网应用中,处理货币是一项常见的任务。为了确保准确性和精度,我们需要选择适当的字段类型来存储货币数据。本文将讨论在MySQL和Java中记录货币时应选择的字段类型,并提供相应的代码示例。...MySQL中的货币字段类型 在MySQL中,我们可以使用DECIMAL数据类型来存储货币数据。DECIMAL提供了固定精度和小数位数的数字存储,非常适合处理货币金额。...创建包含货币字段的表 下面是一个示例代码,演示如何在MySQL中创建一个包含货币字段的表: sql CREATE TABLE products ( id INT PRIMARY KEY, name VARCHAR...结论 在MySQL和Java中记录货币时,我们需要选择适当的字段类型来确保准确性和精度。在MySQL中,使用DECIMAL类型存储货币金额是一种常见的做法。...而在Java中,使用BigDecimal类来表示和处理货币数据是推荐的方式。本文详细介绍了在MySQL和Java中记录货币时的字段类型选择,并提供了相应的代码示例

    67620

    XCode最佳实践之最佳数据类型

    最佳数据类型如下: 1,整型。Int32是标准配置,这个必须有的。在Oracle,整型就是小数为0的Numeric 2,长整型。Int64,大部分数据库都有吧。 3,短整型。...Boolean,大部分数据库支持,MySql不支持,它一般用一个枚举Y/N来实现,XCode有支持。 5,浮点数。...6,货币。Decimal,货币类型必须有的,对应MSSQL的Money。开发的时候小心,不要拿Decimal判断两个值是否相等,应该相减判断差值是否小于0.000001,这个小数自己看情况定。...String,在MSSQL一律用nvarchar,Unicode变长。字符串类型是唯一完整支持不同数据库设置长度的,以上类型全部不能完整支持。 9,大文本。String,在MSSQL一律用ntext。...最佳体验: 1,单一主键,建议用自增ID。XCode支持迁移自增字段的数据,当然,如果需要合并数据,那得自己处理逻辑 2,建立各种索引。

    1.2K60

    MySQL窗口函数怎么用

    avg_score FROM scores GROUP BY subject) sub ON s1.subject = sub.subjectORDER BY s1.score DESC; 这段SQL是干什么用的呢...8.x 版本中,MySQL 提供了窗口函数,窗口函数是一种在查询结果的特定窗口范围内进行计算的函数。...很早以前用 Oracle 和 MS SQL 的时候会用到里面的窗口函数,但是用 MySQL 后才发现,MySQL 竟然没有窗口函数,以至于一些负责的统计查询都要用各种子查询、join,层层嵌套,看上去很简单的需求...窗口函数主要的应用场景是统计和计算,例如对查询结果进行分组、排序和计算聚合,通过各个函数的组合,可以实现各种复杂的逻辑,而且比起 MySQL 8.0之前用子查询、join 的方式,性能上要好得多。...mysql复制代码function_name(...)

    10210

    用MySql不是MySQL, 不用MySQL都是MySQL 横批 哼哼哈哈啊啊

    这句话熟悉吗,今天咱们要说的是 “用MySQL不是MySQL,不用MySQL都是MySQL”,横批 MySQL要倒霉。...这话的从哪里说起,这的从MySQL自身说起,用MySQL的量在业内还是比较大的,但是我们要注意,兼容MySQL的数据库也是一堆,且这些数据库大部分的数据处理能力都比 MySQL要强。...为什么你们MySQL DBA,不会这些兼容MySQL的数据库呢?...更可怕的是,迁移,都兼容MySQL且比MySQL功能强,各种功能都组合在一起了,开发这时就不会成为应用迁出MySQL的挡路石,剩下的就是 MySQL DBA 在各种不会中,赶紧学习那些兼容MySQL数据库的开始奋斗新征程...当然这些还不算什么,更多的是在不断应用迁出MySQL后,MySQL的使用者会越来越少,至少现在有些大厂一直在抛弃MySQL,用尽心机用其他的数据库产品替换MySQL,当然我们也不是什么大厂,但就我们这样的

    9410

    用虚拟货币支付,享受亲临般的演唱会体验

    而比特币是一种虚拟货币,区块链技术是其的底层技术,区块链不仅可以在比特币中使用,还可以被应用到其他许多领域。...CEEK VR:使用虚拟货币看VR演唱会 比特币的出现正在逐渐改变传统支付方式,现在越来越多的公司开始使用虚拟货币,VR企业也不例外。...CEEK代币是CEEK VR推出的虚拟货币。 ?...而现在通过虚拟货币,我们就可以不用支付这些费用,所以我们获利水平也能提高30%。” 而且,虚拟货币不仅可以用来购买VR演唱会的门票,还可以进行虚拟商品交易。...这意味着,粉丝可以在平台上购买喜欢的明星的相关虚拟产品,而CEEK VR平台的明星只需花一小段时间构建出个人虚拟空间、货币以及商品,就可以创造出无限收益。 ?

    1.2K30
    领券