mysql输出如何控制小数点位数

mysql输出如何控制小数点位数,第1张

1、你可以在创建表的时候限制小数点的位数,如create table xxx(abc decimal(10,2))

其中decimal(10,2),就是指整数10位,保留2位小数

2、你可以查询的时候用round()函数四舍五入保留小数,如select round(abc,2)

1、用函数 ROUND(数值,s) ,其中 s 表示 小数位数。

例:SELECT ROUND(4.994,2) 返回 4.990。

2、用函数 CAST(数值 as numeric(n,s)),其中n表示有效数字位数,s表示小数位数。

例:SELECT CAST(4.994 as numeric(10,2)) 返回 4.99。

3、用函数 CONVERT(numeric(n,s),数值),其中n表示有效数字位数,s表示小数位数。

例: SELECT CONVERT(numeric(10,2),4.985) 返回 4.99。

其运用的函数是函数 TRUNC。而trunc函数的功能和函数INT类似,是截取日期或数字,返回指定的值。函数trunc直接去除数字的小数部分,而函数INT则是向下舍入到最接近的整数。

扩展资料

TRUNC(for number)语法格式:TRUNC(number,[decimals])

其中:

number 待做截取处理的数值。

decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。

trunc函数 turnc(x,y)如果y是负数,则对x在小数点左边的第|y|位处进行截断。

例如:TRUNC(5.75, -1)=0;

看成 0005.75.000 从小数点左边第一位往左边截,是0。

下面是该函数的使用情况:

TRUNC(89.985,2)=89.98

TRUNC(89.985)=89

TRUNC(89.985,-1)=80

注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。

参考资料来源:百度百科  trunc

对于小数位可能很长(比如excel的浮点数)不确定长度的浮点型数字,double类型才是正确的选择。

decimal多用于定长小数的情况。

首先:要确定你的问题是什么。

1、是小数位数后面的0不需要?

那double会自动忽略后面所有的0.

2、是数据被剪切(小数位数变少)了?

那么可以有2个解决方案。

A、使用double定义该字段,然后重新导入数据。

B、使用decimal,但是小数位的总长度必须大于你需要导入的数据小数点的总长度。且字段总长度必须大于等于“小数点左边的长度+小数点右边的长度”

以上所有解决方案都解决不了已经导入的数据的小数值,因为丢失在导入的时候已经发生了。所以要保证正确性,必须重新导入。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10814505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存