나는 이것을 알아 내려고 노력해 왔지만 운이 없었습니다. 각 계수를 가장 가까운 정수로 반올림해야합니다.파이썬 - 가장 가까운 정수로 반올림
이렇게하려면 작은 숫자 dq = 0.0001을 사용합니다. a [0] = 0.5이면 round (a [0]) = 0.0; 이것은 분명히 좋지 않습니다. 그러나이 문제를 해결하려면 dq : round (a [0] + dq) = round (0.5001) = 1.0; 이것은 좋다.
[2] = -0.5 : round (a [2] -dq) = round (-0.5001) = -1.0과 같은 네거티브의 경우. if 문을 사용하여 제외 어를 고려합니다. 이것은 올바른 값을 반환하지 않습니다 내 코드입니다 :
a= 0.5,0.5,-0.5,-0.5
dq = 0.0001 #small number
b = round(a[0]+dq), round(a[1]+dq), round(a[2]+dq), round(a[3]+dq)
if a[0] < 0:
b[0] == round(a[0]-dq)
if a[1] < 0:
b[1] == round(a[1]-dq)
if a[2] < 0:
b[2] == round(a[2]-dq)
if a[3] < 0:
b[3] == round(a[3]-dq)
print(b)
출력 :
(1,1,0,0)
분명히 그것이 역기능 있습니다 if 문.
p.s. 나중에 계산 결과 b를 사용할 수 있어야합니다.
덕분에, 나는 람다 v를 코드의 두 번째 줄을 사용하여 생각하지 않을 것이다 당신은 뭔가 새로운 일상을 배웁니다. – iknowi