작성
·
51
·
수정됨
0
# 반올림 (ex: 5.49분) 30초 이상이면 올림, 30초 미만이면 버림
value = 5.49
round(value)
0.49만 인덱싱 해서 60을 곱해 30초 이상인지 확인해야하는데, 어떻게 인덱싱 할 수 있을까요?
value - int(value)
이런 식으로 소수부만 남기는 방식을 택하는건지 소수부만 인덱싱이 가능한지 궁금합니다!
아래는 제가 만든 코드입니다!
value = 5.49
under = value - int(value)
if under*60 >=30:
print(int(value) + 1)
else:
print(int(value))
0.49*60 = 29.4이기에 5로 잘 출력은 됩니다만.. 너무 번거롭게 접근한게 아닌가해서 질문드립니다!
아 그리고 round 이외에 올림, 내림 함수는 따로 있는지 궁금합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
오벽님께서 작성해주신 방법은 소수부를 얻기 위한 정확한 방법입니다. value - int(value)
를 통해 소수점 이하의 숫자만 추출하시고, 이를 활용하여 조건에 맞게 반올림을 하시는 방식이 적절합니다. 파이썬에서는 올림과 내림에 관련된 함수를 추가로 제공합니다.
math.ceil()
math.floor()
이 두 함수를 사용하시려면, math
모듈을 임포트하셔야 합니다. 예를 들어:
import math
value = 5.49
decimal_part = value - int(value)
if decimal_part * 60 >= 30:
result = math.ceil(value)
else:
result = math.floor(value)
print(result)
이렇게 하면 math.ceil()
과 math.floor()
를 사용하여 보다 명확하게 코드를 작성할 수 있습니다. 현재 사용하고 계신 로직도 적절하지만, 이 방법도 고려해보세요!
이미지나 추가적인 정보가 필요하시다면 아래 URL을 참고해주세요:
도움이 되었길 바랍니다! 추가적으로 궁금한 사항이 있으면 언제든지 문의 해주세요. 😊