Method: 1. Use string formatting, syntax "print("%.2f" % a)"; 2. Use round built-in function, syntax "round(a, 2)"; 3. Use decimal module, syntax "Decimal(a).quantize(Decimal("0.00"))"; 4. Use sequence slicing, syntax "str(a).split('.')[0] '.' str(a) .split('.')[1][:2]"; 5. Use the re module.
The operating environment of this tutorial: windows7 system, python3 version, DELL G3 computer
Many friends may encounter this when learning python Requirements for formatted output of data, the most common of which is: retaining several decimal places. Today, this article will take how to retain two decimal places in Python as an example to introduce the method of data formatting in Python.
Most languages can use string formatting to achieve the effect of retaining two decimal places, and python is no exception:
a = 12.345
print("%.2f" % a) # %代表格式化输出,.2代表小数点后保留两位,f代表数据类型是浮点型
Python has a built-in function called round, which can be used to format data. The code is as follows:
a = 12.345
a1 = round(a, 2) #将a通过round函数处理后赋值给a1,传入的2代表保留两位小数
print(a1)
Similar to java, python also provides a decimal module for precise calculations, and it can also format data. output. The code is as follows:
from decimal import Decimal
a = 12.345
Decimal(a).quantize(Decimal("0.00")) # 使用默认的进位方式(同round)“0.00”表示保留小数点后两位
Note: Python's round uses a special carry method, which is somewhat similar to rounding, but to be precise, it should be called rounding to five. Interested friends can learn about numerical rounding and basic rounding.
The above is the conventional method of retaining two decimal places. Next, we introduce two unconventional methods (using string processing method, this method only retains two decimal places and does not round)
The principle is very simple, just find the decimal point and then slice. The code is as follows:
a = 12.345
str(a).split('.')[0] + '.' + str(a).split('.')[1][:2] #使用序列切片的方式,切出小数点前的数据,还有小数点后两位的数据,然后进行拼装
is similar to slicing, but this time regular matching is used to locate the decimal point position.
import re
a = 12.345
re.findall(r"\d{1,}?\.\d{2}", str(a)) #使用正则匹配,将符合规则(一个小数点前有很多位数字,小数点后面只有两位数字的片段)字符串片段取出
【Related recommendations: Python3 video tutorial】
The above is the detailed content of How to keep two decimal places in python. For more information, please follow other related articles on the PHP Chinese website!