float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)
decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)
float f = 345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。
double d=345.975423578631442d;//结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。
注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。
decimal dd=345.545454879.....//可以支持28位,对最后一位四舍五入。
注:当对decimal类型进行操作时,数值会因溢出而报错。
MySQL的FLOAT类型可以存储非常大的范围内的浮点数,但是它的精度是有限的。根据MySQL的文档,FLOAT类型的精度是24位,这意味着它可以支持最多6到7位的小数位数。然而,实际上,由于浮点数的存储方式,精度可能会稍有不同。因此,如果您需要更高的精度,可以考虑使用DOUBLE类型,它可以支持更多的小数位数。总之,FLOAT类型在大多数情况下可以满足需求,但如果需要更高的精度,应该选择DOUBLE类型。
decimal是MySQL中存在的精准数据类型。
在MySQL中,可以使用PERCENTILE_CONT函数来计算百分位数。具体语法如下:```sqlSELECT PERCENTILE_CONT(percentile) WITHIN GROUP (ORDER BY column_name) FROM table_name;```其中,percentile是要计算的百分位数(0-1之间的小数),column_name是要计算的数值列,table_name是要查询的表名。例如,要计算某个表中某一列的中位数(即50%的百分位数)可以这样写:```sqlSELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY column_name) FROM table_name;```注意,PERCENTILE_CONT函数要求MySQL版本在8.0以上才能使用。如果使用的是较旧的版本,可以考虑使用其他方法计算百分位数,例如使用子查询结合LIMIT语句等。