mysql里记录货币用什么字段类型好?(阿里电话面试的问题;当时答为Float,直接暴露自己水平了)
2019-06-08 09:56
351 查看
在java的开发中,货币在数据库中MySQL常用Decimal和Numric类型表示,这两种类型被MySQL实现为同样的类型。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定;例如:
salary DECIMAL(9,2)
在这个例子中,9(precision)代表将被用于存储值的总的小数位数,而2(scale)代表将被用于存储小数点后的位数。因此,在这种情况下,能被存储在salary列中的值的范围是从-9999999.99到9999999.99。
DECIMAL和NUMERIC值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小数精度。一个字符用于值的每一位、小数点(如果scale>0)和“-”符号(对于负值)。如果scale是0,DECIMAL和NUMERIC值不包含小数点或小数部分。 不使用float或者double的原因:因为float和double是以二进制存储的,所以有一定的误差。
比如:在数据库中c1,c2,c3分别存储类型是float(10.2),decimal(10.2),float类型。
插入数据:
INTO test (c1,c2,c3) VALUES (1234567.23,1234567.23,1234567.23)
数据在数据库中的存储结果是:
可以看出,使用float类型存储有一定的误差。因此使用decimal或者numric类型。
相关文章推荐
- mysql里记录货币用什么字段类型好
- mysql里记录货币用什么字段类型好?
- MySQL中float类型字段的显示问题
- easyui-datagrid关于展示的字段需要进行数据类型转换的问题(自己记录备忘)
- MySql 字段类型为float时,SUM汇总时出现一堆小数的问题
- 没做过编译器就是被人欺——从一道变态的类型转换题猜编译器的行为(指针直接调用自己的非虚函数,当时是什么类型就是什么,但数据成员仍用自己的)
- 记录:java执行mysql语句查询字段类型:timestamp返回页面显示会多出个 .0,自己如何处理的
- Mybatis解决空字符串保存入Mysql数字字段的类型转换问题
- 当你输入一个网址的时候,实际会发生什么?(赛门铁克电话面试我,曾经问过这个问题,最后一问,我只能说不知道)
- Mysql float类型where 语句判断相等问题
- mysql timestamp类型的字段 默认值CURRENT_TIMESTAMP 自动更新的问题
- 前几天参加了阿里巴巴的电话面试,把他们问的问题都记录了下来,希望对那些正准备面试的人有用。
- MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题
- 面试经常问到的问题(自己记录)
- 实验过程中遇到的mysql DateTime类型与java Calendar问题与解决过程记录
- 记阿里电话面试的一个遗留问题:淘宝订单如何保证与支付宝订单的同步“?...
- 学习和面试,这两件事儿 怎么去学习呀 百度、阿里面试(电面居多)都问些什么问题? 底层再底层思考,打破砂锅问到底,这是我的学习方法
- 2015春天阿里面试问题电话采访和视频摘要
- java和mysql定义的字段类型不一致,前端取值问题
- 在mysql存储过程中拼接sql解决in的字段类型不匹配问题