数据库金额类型
⑴ sql server 货币 字段 类型 一般用什么类型
货币的字段类型一般有int,float,money/smallmoney,decimal/numberic。
根据存储数据的精度不同选择:
int只能存储整数的钱。
money/smallmoney数据类型精确到它们所代表的货币单位的万分之一 。
decimal/numberic 可以自定义小数位和能存储的数据精度, 所以一般使用这种类型的人会多一些。
float 对货币这种需要精确值的数值不合适。
总结:
在财务方面最好实用money与decimal类型。
如果是简单的计算可以使用float类型,不过float类型在有些平台上取出数据并不是那么准确,有可能会丢失精度。所以说如果在性能稳定的平台中,开销不是很大,建议使用以上两种类型。
(1)数据库金额类型扩展阅读:
SQL数据类型:
1、bit 整型
bit数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Off.
注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用。
2、tinyint 整型
tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。这种数据类型在数据库中占用1 个字节。
3、smallint 整型
smallint 数据类型可以存储从- 2的15次幂(-32768)到2的15次幂(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间。
4、int 整型
int 数据类型可以存储从- 2的31次幂(-2147483648)到2的31次幂 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节。
5、decimal 精确数值型
decimal 数据类型能用来存储从-10的38次幂-1到10的38次幂-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数。
6、numeric 精确数值型
numeric数据类型与decimal 相似。
7、smallmoney 货币型
smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之一。
8、money 货币型
money数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一。
9、float 近似数值型
float 数据类型是一种近似数值类型,供浮点数使用。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表示。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数。
10、real 近似数值型
real 数据类型像浮点数一样,是近似数值类型。它可以表示数值在-3.40E+38到3.40E+38之间的浮点数。
⑵ sqlserver 建数据库时表示时间,金额和重量的字段用什么数据类型好,有人说全用nvarchar因为好操作,求解
时间:DateTime
金额:money 或 numeric(18,2). numeric主要是方便定义小数位数,money限死了只有四位
重量: numeric , 不需要精度的就 numeric(12,0), 需要精度就 numer(30,n)
⑶ mysql存储金额类型,用什么数据类型比较可靠,一般企业数据用什么数据类型
对于游戏币等代币,一般存储为int类型是可行的。问题在于越界,int类型长度为11位。
在存储人民币相关的金额的时候,则只能存储到9长度的人民币,也就是说,最大只能存储999999999,不到10亿的数值,如果业务增长很快的话,就会给自己留下隐患。
Decimal:Decimal为专门为财务相关问题设计的数据类型。
DECIMAL从MySQL5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL5.1中,参量的取值范围如下:M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M的默认值是10。
D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。说明:float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。
如DECIMAL(5,2)的最大值为9999.99,因为有7个字节可用。能够解决数据的范围和精度的问题。
(3)数据库金额类型扩展阅读
MySQL数据类型DECIMAL用法:
MySQLDECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。
要定义数据类型为DECIMAL的列,请使用以下语法:column_nameDECIMAL(P,D);
在上面的语法中:
P是表示有效数字数的精度。P范围为1〜65。
D是表示小数点后的位数。D的范围是0~30。MySQL要求D小于或等于(<=)P。
DECIMAL(P,D)表示列可以存储D位小数的P位数。十进制列的实际范围取决于精度和刻度。
与INT数据类型一样,DECIMAL类型也具有UNSIGNED和ZEROFILL属性。如果使用UNSIGNED属性,则DECIMALUNSIGNED的列将不接受负值。
如果使用ZEROFILL,MySQL将把显示值填充到0以显示由列定义指定的宽度。另外,如果我们对DECIMAL列使用ZEROFILL,MySQL将自动将UNSIGNED属性添加到列。
⑷ MySQL数据库存储价格金额用什么数据类型好
decimal这个是专门处理金额值的,java类型对应BigDecimal 推荐看下扛得住的MySQL数据库架构-项目实战哈
⑸ 数据库中金额是number类型的,写程序时javaBean中应该是什么类型
当然是double类型的了,这个类型最为常用,而且很大不会溢出,在java语言中,有几种默认的数据类型,比如说整型默认为int,浮点型默认为double,所以在编写程序的时候我们使用最多的就是int型和double型了,只有比较特别的情况下才使用其他的类型。而数据库中number是包含小数的,因此最好用double型吧。
⑹ 数据库中定义金额字段,用Decimal好还是varchar好,请说一下两者差异
当然是decimal好了,做报表计算价格就不需要convert了呀。。
⑺ 为什么数据库涉及到钱要用decimal啊
Decimal在sql server里是精确值类型,精度38,Decimal 类型具有更高的精度和更小的范围,它适合于财务和货币计算。它可避免浮点数计算误差,Decimal是以字符串的形式保存精确的原始数值。
⑻ 数据库建表时,单价,总价,税率,各用什么数据类型来表示好呢
decimal(18,0)解释: 括号内第一个参数18表示可存储数据位数,第二个参数 0 表示精度,即,保留到哪一位; 如 DECIMAL(8,2) 类型字段 里存储数据1234.1234,那么存在数据库中的值就成了:1234.12
⑼ mysql设计数据库钱用什么字段
通常在处理金额方面,使用float 和double 明显不够精确。
设置字段使用decimal 后面不写默认是(10)。根据情况可以设置第二个参数,第二个参数是需要保留的位数,在java 中也不能直接使用 + - * / 方法来计算。使用bigDecimal 处理加法:add 减法:substract 乘法:multiply 除法:divdie。计算