可以在建表的时候限定小数点的长度,例如decimal(5,2),后面的2就是2位的意思。
在河东等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站制作 网站设计制作按需定制网站,公司网站建设,企业网站建设,品牌网站建设,营销型网站建设,成都外贸网站制作,河东网站建设费用合理。
如果表已经建好,可以在查询语句中用函数 round(X,2) 转换,X为字段,后面的数字为长度,你要几位就填几。
要求精度高就用decimal
审题错了...
简单写下区别:
float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)
double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)
decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)
numberic
===
decimal
float
f
=
345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。
double
d=345.975423578631442d;//结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。
注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。
decimal
dd=345.545454879.....//可以支持28位,对最后一位四舍五入。
注:当对decimal类型进行操作时,数值会因溢出而报错。
X是数值,D是保留小数的位数。
其作用就是按照小数位数,进行数值截取(此处的截取是按保留位数直接进行截取,没有四舍五入)。
1.结果直接截断
2.不会有0的填充,比如¥330.8,不会显示¥330.80
转换类型
结果会有0的填充
X是数值,D是保留小数的位数。
1.结果四舍五入。
2.不会有0的填充。
格式化浮点数的问题,用format(col,2)保留两位小数点,出现一个问题,例如下面的语句,后面我们给出解决方法
复制代码代码如下:
SELECT FORMAT(12562.6655,2);
结果:12,562.67
查看文档:Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has no decimal point or fractional part.整数部分超过三位的时候以逗号分割,并且返回的结果是string类型的。
复制代码代码如下:
mysql SELECT FORMAT(12332.123456, 4);
- '12,332.1235'
mysql SELECT FORMAT(12332.1,4);
- '12,332.1000'
直接将百分率那列乘以0.01即可(中间需要提取%百分号左侧的有理数,包括使用转换函数强制转换成实数,如双精度浮点数)。
-- 伪码
SELECT percentage*0.01 AS chValue;
-- such as
20%=20*0.01=0.20