python中decimal用法(decimal函数python)

http://www.itjxue.com  2023-02-14 05:40  来源:未知  点击次数: 

python中怎么保留两位小数

1、使用字符串格式化

大部分语言都可以使用字符串格式化的方法来实现保留两位小数的效果,python也不例外:

a = 12.345

print("%.2f" % a) # %代表格式化输出,.2代表小数点后保留两位,f代表数据类型是浮点型

2、使用round内置函数

python内置了一个名为round的函数,这个函数可以用来对数据进行格式化。代码如下:

a = 12.345

a1 = round(a, 2) #将a通过round函数处理后赋值给a1.传入的2代表保留两位小数

print(a1)

3、使用decimal模块

类似于java,python也专门提供了一个decimal模块用于精确运算,它也可以进行数据的格式化输出。代码如下:

from decimal import Decimal

a = 12.345

Decimal(a).quantize(Decimal("0.00")) # 使用默认的进位方式(同round)“0.00”表示保留小数点后两位

以上就是常规的保留两位小数的方法,接下来介绍两种非常规的方法(使用字符串处理的方法,这种方法仅保留两位小数,不做四舍五入)

4、使用序列切片

原理很简单,只要找到小数点,然后进行切片即可。代码如下:

a = 12.345

str(a).split('.')[0] + '.' + str(a).split('.')[1][:2]

#使用序列切片的方式,切出小数点前的数据,还有小数点后两位的数据,然后进行拼装

5、使用re模块

类似于切片,不过这次使用正则匹配来定位小数点位置。

import re

a = 12.345

re.findall(r"\d{1.}?\.\d{2}", str(a))

#使用正则匹配,将符合规则(一个小数点前有很多位数字,小数点后面只有两位数字的片段)字符串片段取出

python decimal四舍五入精确保留2位小数

python保留2位小数一般用以下几种:

①round函数

②format(float_num,'0.2f')

③decimal

一、先说下这次的重点想说的decimal,可以精确的四舍五入保留两位小数。

①可以传给decimal整形或者字符型,不能传浮点型,因为浮点型本身就是不精确的数

但是如果一定要是浮点型,可以以下:

正常情况下

二、round函数,大部分情况下可以四舍五入,但是遇到要保留位数后一位是5时,是不会进1位的

三、format和round类似

python decimal计算

需要用decimal小数模块

import?decimal

decimal.getcontext().prec=1000?#加大精度1000数位

print("{0:f}".format(decimal.Decimal(2000).exp()))

'38811801942843685764823220753718514670913826697042706895634320025015135117764334178071536383485495635245341522126873745022848019235799990624720446471308329220917265623045569882348141223870466136070275245351881437746079281878191771312753082102548977329005160196506245381186209071978349102313817355441385136527511863327230748687069793735193879820016694814326845845052258131304486495232579534694774551113146286173051579085039880553950060390257533702796973505843022193520327710602309923291725307047680767724438319919572040740990231116368112925685356182791858114743116461457296581275760096431055125886486280853474220045330657007275743333900977863401346819983990441814505810325868291270552922907343623381916909416318061722526621181889944580222975974703335027661366491501802294392269634391221535118801534929708346716008503843951520880006777875391161344260869513383652559830528.18871821545813834735027221800129960853841246012318666480754147272306900299870841283760891506804877065034718969731104412119662668317'

decimal python中怎么用

不加引号的1.3是python基础数据类型的双精度浮点数,“有效数位”约18个十进制数字,所以有效数位以外的不精确值就体现在“力求精确”的decimal的显示中。

而加引号'1.3'是以字符串表示的精确数值输入。

decimal 详解

本篇文章回答了如下问题:

1.为什么要有decimal,解决了什么问题,为什么不用float

2.decimal为什么就不存在不精确的问题

3.mysql中有对应的字段吗

4.mysql中有对应的字段吗

5.python中decimal如何来使用

6.python中decimal如何用特定格式展示

试着创建一个表

会出现如下报错

1264, u"Out of range value for column 'a_decimal' at row 1"

继续

insert into t1 set a_decimal = 10;

显示插入成功;

insert into t1 set a_decimal = 10.2392323;

insert into t1 set a_decimal = 10.2312323;

运行上面命令可以看出来decimal和float的区别

(责任编辑:IT教学网)

更多

推荐照片处理文章