项目场景:
实现保留3位有效数字(四舍六入五成双规则)
问题描述
- 输入:输出:
- 1234 1234
- 12 12.0
- 4 4.00
- 0.2 0.200
- 0.32 0.320
- 1.3 1.30
- 1.235 1.24
- 1.245 1.24
- 1.2451 1.25
示例分析:
解决代码:
from decimal import Decimal
a = 1
while(a):
n = input('请输入数字:')
if ('.' in n):
n = float(n)
n1 = Decimal(str(n)) - Decimal(str(int(n)))
if (len(str(n1)) == 5):
n2 = int(n * 1000)
l = len(str(n2))
if (str(n2)[l-1] != '5' and n > 1):
print(f'输出为{n:.2f}')
elif (str(n2)[l-1] != '5' and n < 1):
print(f'输出为{n:.3f}')
else:
if (int((n2/10)) % 2 == 0 and n > 1):
n = float(int(str(n2)[0:l-1])/100)
print(f'输出为{n:.2f}')
elif (int((n2/10)) % 2 == 0 and n < 1):
print(f'输出为{n:.3f}')
else:
n = float((n2 + 1)/1000)
if (n > 1):
print(f'输出为{n:.2f}')
else:
print(f'输出为{n:.3f}')
elif ( n > 1):
print(f'输出为{n:.2f}')
else:
print(f'输出为{n:.3f}')
else:
n = int(n)
if (n > 99):
print(f'输出为{n}')
elif (n < 10):
print(f'输出为{n:.2f}')
else:
print(f'输出为{n:.1f}')