2011-03-01 3 views

답변

2

부동 소수점 나누기를 사용합니다. 예컨대 :

(11.0/5) % 1 = 0.20000000000000018 

(1.0 * 11/5) % 1 = 0.20000000000000018 
1

8을 반환?

>>> int(((4.0/5.0) % 1) * 10) 
8 
+0

'% 10'을 추가하면 실제로 숫자 형식에 맞는 모든 입력에 적용됩니다. –

+0

Unleas는 값이 음수임을 나타냅니다. 항상 모듈로주의하십시오.) – markijbema

0

쉽게는 일반적인 숫자 a를 들어, int을 사용하여 계산할 수 있습니다

int(10*a)%10 

그러나, 참고 양수이 단지 작품!

당신은 그것뿐만 아니라 음수 작동하려면 :

int(10*a*cmp(a,0))%10*cmp(a,0) 
0

당신은 부동 소수점 연산 않고이 작업을 수행 할 수 있습니다, 맞죠?

foo=lambda x,y: (10*(x%y))/y) 

# Demo 
>>> for i in range(20): 
... print(foo(i,7), i/7.0) 
... 
(0, 0.0) 
(1, 0.14285714285714285) 
(2, 0.2857142857142857) 
(4, 0.42857142857142855) 
(5, 0.5714285714285714) 
(7, 0.7142857142857143) 
(8, 0.8571428571428571) 
(0, 1.0) 
(1, 1.1428571428571428) 
(2, 1.2857142857142858) 
(4, 1.4285714285714286) 
(5, 1.5714285714285714) 
(7, 1.7142857142857142) 
(8, 1.8571428571428572) 
(0, 2.0) 
(1, 2.1428571428571428) 
(2, 2.2857142857142856) 
(4, 2.4285714285714284) 
(5, 2.5714285714285716) 
(7, 2.7142857142857144)