python-3.x - python中的float问题(计算不正确)
问题描述
当我做浮动//浮动时,我的答案不正确。我需要这个,因为我在站点检查此代码并给出或不给出下一个任务之后将此代码写入站点。示例 0.03//0.01 = 2... 我有数字列表,我需要将其转换为其他。自动柜员机的类型。我有这个代码
from typing import List, Tuple
coupier = [10,50,100,500,1000] #купюры
coupierfm = [] #купюры которые получит человек
coins =[0.01,0.05,0.1,0.25,0.5,1,5] # монеты
coinsfm = [] #монеты человеку
def main(input_coins: List[float]) -> Tuple[List[int], List[float]]:
count = round(sum(input_coins), 2)
for i in reversed(coupier):
count = round(count, 2)
a = int(count//i)
if a >= 1:
coupierfm.extend([i] * a)
count -= i*a
for i in reversed(coins):
count = round(count, 2)
a = int(count//i)
print(a, count, i, 'a, count for')
if a >= 1:
coinsfm.extend([i] * a)
count -= i*a
print(count, 'count if')
print(coupierfm,coinsfm,count)
例如:
''' 1 9.73 5 a, 计数
4.73 计数 如果
4 4.73 1 a, 计数
0.7300000000000004 计数 如果
1 0.73 0.5 a, 计数
0.22999999999999998 计数如果
0 0.23 0.25 a, 计数
2 0.23 0.1 a, 计数 0.23 0.1 a,
计数
0 0.03 0.05 a, count for
2 0.03 0.01 a, count for
0.009999999999999998 count if
''' 最后有一个问题 0.03//0.01 = 2 但我认为它需要是 3。我该如何解决这个问题?我尝试使用十进制。但是当我将带十进制的代码粘贴到站点时,我有 10 个通过测试和 90 个失败测试。有十进制代码链接https://pastebin.com/2HBH0wSr。