제목에서 알 수 있듯이 부동 소수점 숫자를 가장 가까운 정수로 내림하고 싶습니다. 그러나 전체가 아닌 경우 다음 정수에 얼마나 가까운 지에 관계없이 항상 변수를 반올림하고 싶습니다. 이를 수행하는 방법이 있습니까?
답변
단순한
print int(x)
잘 작동합니다.
답변
다음 중 하나가 작동합니다.
import math
math.trunc(1.5)
> 1
math.trunc(-1.5)
> -1
math.floor(1.5)
> 1
math.floor(-1.5)
> -2
답변
x//1
//
운영자는 분단의 바닥을 반환합니다. 1로 나누어도 숫자는 바뀌지 않으므로 플로어와 동일하지만 가져 오기가 필요하지 않습니다. 노트:
- 이것은 float를 반환합니다.
- 이것은 -∞로 반올림됩니다.
답변
부동 소수점 결과를 얻으려면 다음을 사용하십시오.
round(x-0.5)
음수에서도 작동합니다.
답변
답변
많은 사람들이를 사용하라고 말하고 int(x)
이것은 대부분의 경우에 잘 작동하지만 약간의 문제가 있습니다. OP의 결과가 다음과 같은 경우 :
x = 1.9999999999999999
그것은
x = 2
16 일 9 일 이후에는 반올림됩니다. 그런 일을 결코 만나지 않을 것이라고 확신한다면 이것은 큰 문제가 아닙니다. 그러나 명심해야 할 사항입니다.
답변
수학을 가져 오지 않으려면 다음을 사용할 수 있습니다.
int(round(x))
다음은 문서입니다.
>>> help(round)
Help on built-in function round in module __builtin__:
round(...)
round(number[, ndigits]) -> floating point number
Round a number to a given precision in decimal digits (default 0 digits).
This always returns a floating point number. Precision may be negative.