Home >Backend Development >Python Tutorial >How to keep two decimal places in python

How to keep two decimal places in python

青灯夜游
青灯夜游Original
2023-01-05 17:36:4118669browse

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.

How to keep two decimal places in python

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.

Use string formatting

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代表数据类型是浮点型

Use round built-in function

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)

Use decimal module

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)

Using sequence slicing

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] #使用序列切片的方式,切出小数点前的数据,还有小数点后两位的数据,然后进行拼装

Using the re module

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn