数据库中保留两位⼩数
引⼊:
本⼈菜鸟,今天遇到⼀个问题,把数据库中的⼀列值保留两位⼩数查出来;
在⽹上搜索了很多关于数据库中保留两位⼩数的⽂章,可惜总是不能实现,后来⾃⼰总结了下,
才发现原来很简单,是⾃⼰没有理解够;
在这之前先介绍下⼏个函数:
1:round()这是四舍五⼊函数,⽤于把数值字段舍⼊为指定的⼩数位数。
例如:  SELECT round(column_name,decimals) FROM table_name;
⽹上说这个函数可以保留四舍五⼊两位⼩数,可是我发现SELECT ROUND(19.434,2)出来的是19.430⽽不是19.43,round函数有几个参数
可能是由于不能数据库的关系,竟然讲到这个函数,我就对这个函数解释下总结了下⽹上⼀些博客对它的了解
round 有两个重载,⼀个是两个参数,⼀个是三个参数:
1.带有两个参数.每⼆个参数是⼩数点的左边第⼏位或右边第⼏位,分别⽤正负表⽰.左边为负,右边为负.为四舍五⼊.
SELECT round(567.45676,-1)  570.00000(-1 表⽰四舍五⼊到右边第1位,其中,个位为第0位,四舍五⼊后舍弃的部分显⽰为0)    SELECT round(567.45676,2)  567.46000
SELECT round(20,-3)          0
2.带三个参数.第⼆个参数同上.第三个参数有两种可能,⼀种是取0为四舍五⼊.另⼀种是正负值,则为舍去
SELECT  round(567.45676,2,0)  567.46000(跟两个参数意义的结果,可以把两个参数的当为三位参数的特例为第三参数0)
SELECT  round(567.45676,2,3)  567.45000(第三个参数不为0,所以为舍去,舍弃两位以后的数字,变为567.45舍弃部位为0所以是567.45000)
SELECT  round(567.45676,2,3)  567.45000
2: cast(value as type)函数,其实要保留两位⼩数,只需要把⽤SELECT CAST(19.4667 AS decimal(9,2))就可以这样出来是19.47要是不想四舍五⼊的话,
可以先⽤round函数处理下SELECT cast(round(19.4667,2,3) as decimal(9,2)) 19.46当round函数第三个参数不为0就可以;
3:convert(type,value)函数拥有和cast⼀样的功能SELECT convert( decimal(9,2),round(19.4667,2,3) ) 19.46

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。