首页 > 解决方案 > python数学结果与python结果和计算器不同

问题描述

为什么一个简单的 python 计算给出的结果与 PHP 或袖珍计算器中的相同计算不同?

tmp = (50.73 / 120) * 20

在 python3 中,tmp 现在8.45499999999 在 php 和它导致的其他计算器中8.455(没有任何手动舍入)

我的问题是我需要用 2 个小数点对 tmp 变量进行舍入(商业舍入),这导致 python38.45不正确。商业四舍五入8.455将是8.46

标签: pythonpython-3.x

解决方案


请使用decimal.Decimal,而不是float

from decimal import Decimal

Decimal("50.73") / Decimal(120) * Decimal(20)

如果50.73不是您输入的值,请decimal.Decimal用于计算它。如果它是您从某个地方输入的数字,只需在创建小数点之前将其转换为 int 字符串,因为这Decimal(50.73)会出现与浮点数相同的问题。


推荐阅读