首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    谈谈MySQL如何选择float, double, decimal

    前言 我们知道在MySQL中有3种类型可以表示实数,分别是float,double和decimal。关于如何合理得使用这三种类型,网上的答案也层出不穷。...采用float和double本来就是不准的!! 实数保存和分配存储长度的关系 在MySQL官方里有这样一句话,数据准确度取决于分配给数据类型存储的长度。...来看这样一个例子 mysql> create table f2 (f1 float(15,2)); Query OK, 0 rows affected (0.01 sec) mysql> insert...1 row in set (0.00 sec) mysql> alter table f modify f1 float(10,4); Query OK, 0 rows affected (0.02...作为MySQL官方唯一指定精确存储的decimal类型,后续有精力再研究为什么能做到精确todo 如何选择float,double,decimal 结论总是放在最后,根据上面的分析:可以得出以下结论 1

    4.5K42

    float double取值范围_double float区别

    //负无穷大 //他们打印的结果:+/-Infinity float f1 = (float)Math.pow(2,128);//指数>=128的,打印结果:Infinity //上面要加(float)...强制转换,否则编译提示出错,详细可参考前一节:Java变量数据类型 float f2 = (float)Math.pow(2,127);//1.7014118E38 System.out.println...=106.92,所以float的精度为6~7位,能保证6位为绝对精确,7位一般也是正确的,8位就不一定了(但不是说8位就绝对不对了),注意这里的6~7位是有效小数位(大的数你先需要转换成小数的指数形式,...例如:8317637.5,其有效小数位:8.3176375E6,七位),而有效位(从第一个不为0的开始数)是7~8位,是包括整数位的,像8317637.5,你不转换,则要从有效位的角度来看,有8位有效位...System.out.println((float)Math.pow(10,6.92));//注意加float强制转换 //打印结果8317637.5,float只保证7~8位有效位,其余位数舍入 不理解的话

    1.9K10
    领券