[PYTHON] 부동 소수점 숫자를 가장 가까운 정수로 반올림 하시겠습니까?
PYTHON부동 소수점 숫자를 가장 가까운 정수로 반올림 하시겠습니까?
제목에서 알 수 있듯이 부동 소수점 숫자를 가져와 가장 가까운 정수로 반올림합니다. 그러나 전체가 아니라면 항상 다음 정수까지 얼마나 가까운 지 상관없이 항상 변수를 반 내림하고 싶습니다. 이것을 할 수있는 방법이 있습니까?
해결법
-
==============================
1.단순한
단순한
print int(x)
뿐만 아니라 작동합니다.
-
==============================
2.다음 중 하나가 작동해야합니다.
다음 중 하나가 작동해야합니다.
import math math.trunc(1.5) > 1 math.trunc(-1.5) > -1 math.floor(1.5) > 1 math.floor(-1.5) > -2
-
==============================
3.바닥 기능이 필요하다고 생각합니다.
바닥 기능이 필요하다고 생각합니다.
math.floor (x)
-
==============================
4.부동 소수점 결과를 얻으려면 다음을 사용하십시오.
부동 소수점 결과를 얻으려면 다음을 사용하십시오.
round(x-0.5)
음수에서도 작동합니다.
-
==============================
5.
x//1
// 연산자는 나누기의 바닥을 반환합니다. 1로 나눈 값은 숫자를 변경하지 않으므로 floor와 같지만 가져 오기는 필요하지 않습니다. 노트: 1) 이것은 float를 반환합니다. 2) 이것은 -∞쪽으로 회전합니다.
-
==============================
6.수학을 가져 오지 않으려면 다음을 사용할 수 있습니다.
수학을 가져 오지 않으려면 다음을 사용할 수 있습니다.
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.
-
==============================
7.많은 사람들이 사용한다고 말합니다.
많은 사람들이 사용한다고 말합니다.
int(x)
이것은 대부분의 경우에 잘 작동하지만 약간의 문제가 있습니다. OP 결과 :
x = 1.9999999999999999
그것은에 둥글 것이다
x = 2
16 일이 지나면 9 라운드가 끝납니다. 당신이 그런 일을 결코 겪지 않을 것이라는 것을 확신한다면 이것은 큰 문제가 아닙니다. 그러나 명심해야 할 것이 있습니다.
-
==============================
8.numpy로 작업하는 경우 음수로도 작동하는 다음 솔루션을 사용할 수 있습니다 (배열에서도 작동 함)
numpy로 작업하는 경우 음수로도 작동하는 다음 솔루션을 사용할 수 있습니다 (배열에서도 작동 함)
import numpy as np def round_down(num): if num < 0: return -np.ceil(abs(num)) else: return np.int32(num) round_down = np.vectorize(round_down)
round_down([-1.1, -1.5, -1.6, 0, 1.1, 1.5, 1.6]) > array([-2., -2., -2., 0., 1., 1., 1.])
numpy 모듈 대신 math 모듈을 사용하는 것이 효과가 있다고 생각합니다.
-
==============================
9.이 문제를 해결했는지 모르겠지만이 질문에 비틀 거리고 있습니다. 소수점을 제거하려면 int (x)를 사용하면 10 진수를 모두 제거합니다. 라운드 (x)를 사용할 필요가 없습니다.
이 문제를 해결했는지 모르겠지만이 질문에 비틀 거리고 있습니다. 소수점을 제거하려면 int (x)를 사용하면 10 진수를 모두 제거합니다. 라운드 (x)를 사용할 필요가 없습니다.
-
==============================
10.이 코드를 사용하여 숫자에서 0.5를 뺀 다음 반올림 할 때 원래 숫자를 반올림 한 것입니다.
이 코드를 사용하여 숫자에서 0.5를 뺀 다음 반올림 할 때 원래 숫자를 반올림 한 것입니다.
-
==============================
11.그것은 아주 간단 할지도 모르지만 당신은 1을 뺀 다음 1을 뺀 수는 없습니까? 예 :
그것은 아주 간단 할지도 모르지만 당신은 1을 뺀 다음 1을 뺀 수는 없습니까? 예 :
number=1.5 round(number)-1 > 1
from https://stackoverflow.com/questions/17141979/round-a-floating-point-number-down-to-the-nearest-integer by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 어떻게 파이썬 - Levenshtein.ratio 계산됩니다 (0) | 2018.11.01 |
---|---|
[PYTHON] YouTube의 API를 사용하여 YouTube 동영상을 다운로드하는 방법은 무엇입니까? (0) | 2018.11.01 |
[PYTHON] PyLint가 numpy 멤버를 인식하게하려면 어떻게해야합니까? (0) | 2018.11.01 |
[PYTHON] 장고 양식 다중 선택 (0) | 2018.11.01 |
[PYTHON] SQLAlchemy : 'and` 및`or`를 사용하면 예기치 않은 결과가 발생합니다. (0) | 2018.11.01 |