2012-12-11 4 views
2

math.log(1000, 10) 반환
2.9999999998 또는 일부 근사값 (neraly 세 번째마다 정수 않습니다) 첫째 종류의 나는 많이 없다 상상에도 불구하고 엉망파이썬 정수 근사 파이썬 기능을에서

(가분성 테스트 제외) 그것에 대해 할 일.
두 번째로 내가 원하는 과정이 아니라 어떻게 진행해야합니까? int에 캐스트하면 분명히 2가 아닌 3을 반환합니다 ... 그래서 가장 가까운 int로 라운드를 가져 오는 데는 어떤 방법이 사용됩니까? 이 경우 일반적으로하시기 바랍니다.

+2

'>> 3 math.log10 (1000)''3.0' –

+2

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+1

HTTP : //docs.python .org/3/library/functions.html # round – Dougal

답변

1

누군가 내 대답을 받아 들일 수 있기 전에 누군가가 대답을 제거 했으므로 나는 요약문에 지나지 않습니다.

를이 특정 경우, 작업이 math.log(1000, 10) 이후, 훨씬 더 정밀도를 보여주는 math.log10(1000)로 대체 할 수있다 : 내가 좋아

두 가지 옵션을 제공합니다.

더 일반적인 경우 round (math.log (1000, 10))는 2.999 ...를 정수 3으로 반올림하므로 더 많이 묻습니다.

+1

그 문제와 그 대답이 제거 된 이유는'math.log10 (500)'도 예를 들어 3으로 반올림한다는 것입니다.'math.log10'은 꽤 좋지만'math.log10 (10 * * 110)'은'110.00000000000001'을 반환하고'math.log10 (10 ** 110 - 10 ** 93)'도 마찬가지입니다. 그리고'math.log10 (10 ** 20 - 10 ** 5)'은'20.0'을 반환합니다. 정확한 결과를 원하면 정수 연산을 수행 할 수 없습니다. –