python高速公路超速处罚以及精确计算问题

Python011

python高速公路超速处罚以及精确计算问题,第1张

按照规定,在高速公路上行使的机动车,超出本车道限速的10%则处200元罚款;若超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。 ①输入格式: 输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。 ②输出格式: 若属于正常行驶,则输出“OK”; 若应处罚款,则输出“Exceed x%. Ticket 200”; 若应吊销驾驶证,则输出“Exceed x%. License Revoked” 多出的那0.000000000001导致判断语句失效 外面套上round()取整 究其原因是因为我们输入的是十进制,他要把十进制转换为二进制,再进行运算。但是,再转华中,浮点数转化为二进制就出问题了。 例如十进制的0.1,转化为二进制是0.00011001100110011001100110011001100…… 转化为二进制后不会精确的等于十进制的0.1 解决方法:decimal模块,fractions模块,由SciPy提供的Numerical Python包

rate=float(input("please input rate for year:"))

data=input("please input pricipal and years ,split by comma:")

pricipal,year=[int(x) for x in data.split(",")]

revence=pricipal*((1+year)**rate)

print("expected revence is :%.2f"%revence)