Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
decimal.decimal python_python enumerate,希望能够帮助你!!!。
1.为什么要有decimal,解决了什么问题,为什么不用float
因为float会丢失精度。原因在于二进制要想表示十进制的数就会存在误差,比如用二进制来表示0.1,根本无法精确表示,但是这不是bug,是个feature,因为标准就是这样定的。(IEEE 754 http://www.cnblogs.com/bossin/archive/2007/04/08/704567.html)
2.decimal为什么就不存在不精确的问题?
Decimal完美利用了 【通过借助整数来表示小数的方式】解决了不精确的问题。用二进制表示任何一个精准十进制整数,不管是奇数还是偶数,都是没有问题的。
3.mysql中有对应的字段吗
试着创建一个表
create table t1 (a_decimal decimal(4,2));
insert into t1 set a_decimal = 100;
会出现如下报错
1264, u"Out of range value for column 'a_decimal' at row 1"
继续
insert into t1 set a_decimal = 10;
显示插入成功;
mysql dbu@(none):test> select * from t1;
+-----------+
| a_decimal |
+-----------+
| 10.00 |
| 99.00 |
+-----------+
说明4代表是字段长度,2代表的是小数点后的长度。
insert into t1 set a_decimal = 10.;
insert into t1 set a_decimal = 10.;
+-----------+
| a_decimal |
+-----------+
| 10.00 |
| 99.00 |
| 10.00 |
| 10.23 |
| 10.24 |
+-----------+
实验说明小数点后多出来的部分会自动四舍五入
4.使用场景有哪些
一般所有需要精确计算的场景,比如银行以及订单支付相关
5.python中decimal如何来使用
Decimal ( 3.14 )
Decimal('3.0000875')
运行上面命令可以看出来decimal和float的区别
6.python中的decimal如何用特定格式展示
{0:.2f}.fromat(Decimal('32.2222'))
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。