사용자 입력 부동 소수점에서 소수점 이하 자릿수를 계산하여 내 코드가 소수점 이하 2 자리 이하의 수를 허용하지 않도록해야합니다 (숫자는 가격이라고 가정 함). 여기 내 코드입니다 : 그것은, 노력하고 지금부터사용자 입력 플로트의 소수점 이하 자릿수를 계산하는 방법 INCLUDING 0?
while(flag == True):
try:
price = input("Enter the price: ")
price = float(price)
flag = False
#price must be positive
if float(price) < 0:
print("Invalid input for the new price.")
flag = True
#check for 2 decimal places
decimal = str(price)
decimal = decimal.split(".")
if len(decimal[1]) != 2:
print("Invalid input for the new price.")
flag = True
내가 마지막 소수점 자리는 0을 끝나는 모든 숫자를 수락하지 않는 몇 가지 이유를 들어 0입니다 6.50, 같은 가격을 입력하는 경우를 제외하고 소수 2 자리. 이 문제를 어떻게 해결할 수 있습니까?
가격의 '유형'이란 무엇입니까? 왜 당신은 이미 문자열이어야하는 사용자 입력을 직접 확인하지 않습니까? – schwobaseggl
@schwobaseggl 업데이트 된 코드보기 – gumbo1234
가격을 'float'로 변환해서는 안됩니다! 부동 소수점은 연속 축척의 측정을위한 것이지만 돈은 항상 개별 단위로 측정되므로 '부동 소수점 형'은 사용하지 말고 ['decimal']을 사용해야합니다 (https://docs.python.org/3.6/library/decimal. html)을 직접 작성하십시오. –