在数据库Mysql中使用浮点数不要用float应当使用decimal
来源:互联网 发布:淘宝网购男士夹克 编辑:程序博客网 时间:2024/06/06 12:29
在学习Prepared语句中发现数据库中的float类型,通过bind_result来获取,会出现精度匹配不正确的情况。
code:
//use prepared to select(bind_result)//1.select string$selectstr="select isbn,title,author,price from books";//2.prepare select$result3=$con->prepare($selectstr);//3.bind result$result3->bind_result($isbn2,$title2,$author2,$price2);//4.excute the select$result3->execute();//5.echo the result use whilewhile($result3->fetch()){echo "ISBN:$isbn2 <br />";echo "Title:$title2 <br />";echo "Author:$author2 <br />";echo "Price:$price2 <br /><br />";}//it has a problem Price:30.239999771118 should be 30.24,dont know why
初步判断是php自动匹配类型的时候把30.24匹配成了其他未知的类型。
stackoverflow上的回答没有指出原因,但是建议在mysql中双精度float使用decimal!
链接地址:https://stackoverflow.com/questions/5355285/selecting-float-number-from-float-column-with-php-and-mysqli
陈哈哈的笔记中说是这样说的:
这些函数尝试把值转化成正确的类型。比如说,对储存在数据库中,值类型为FLOAT的字段,通过但是作为text类型被select出来。sqlite3_snprintf()将自动转换这个数值。下表详细地说明了转化过程。虽然是C语言,但是我感觉原理都差不多的。
numeric和decimal同义,numeric将自动转成decimal。
对于Decimal(M,N)的取值范围,因为它是以串的形式存放数字,他占用的字节为M+2字节。小数点和负数各占用一个字节,所以他的理论取值范围是这样的。
decimal(2,1) 的取值范围,一共占用4字节,负数和小数点占用2字节,负数最小为-9.9,同理正数符号可以隐藏,最大的正数为99.9.
详细解释:http://blog.csdn.net/caomiao2006/article/details/22655097
·注:更改掉练习的浮点数类型,并更新原来的文章。
阅读全文
0 0
- 在数据库Mysql中使用浮点数不要用float应当使用decimal
- mysql浮点数decimal、float、double默认进位方式
- ModelBus协议中使用16位传输float浮点数
- 不要在精确计算中使用float和double类型
- 使用 C++ bitset 操纵浮点数类型(float、double)
- mysql中float,double,decimal的差别
- MySQL中decimal与float的区别
- MYSQL浮点数float精度问题
- PHP Float 永远不要比较两个浮点数是否相等
- [读书笔记][Effective Java]不要在精确计算中使用float和double类型
- MySQL中的float和decimal类型float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,
- JAVA中浮点数使用注意事项
- 不要在#include中使用".."
- 浮点数使用注意
- 数据库中float,double与decimal的区别
- 浮点数计算 float
- float浮点数
- MySQL中Decimal类型和Float Double等区别
- 独家 | 一文读懂社交网络分析-下(应用、前沿、学习资源)
- 最后有彩蛋,待研究
- 纯javascript 实现网页copy
- 浅谈ContextLoaderListener及其上下文与DispatcherServlet的区别
- 函数重载相关
- 在数据库Mysql中使用浮点数不要用float应当使用decimal
- maven 工程启动找不到 Spring ContextLoaderListener 的解决办法
- iptables快速设置
- Ubuntu真机下MTK平台FAE自助脚本调试工具,无需驱动工程师协助(shell源码开源)
- antd控件用法
- 裁剪ClippingNode
- BaseRecyclerAdapter之添加不同布局(头部尾部)
- Maven搭建Mybatis-spring-springMVC项目记录
- jsp中分页技术的一些想法