2012-04-14 3 views
2

TCL에서 문제가 발생했습니다. 나는 두 개의 정수 변수를 더하고 곱할 수있다. 이것은 정상적으로 작동합니다.부서 운영자가 결과를 산출하지 못합니다.

set hdsuc [expr {$hdsuccess * $hdcount}] 
set hdsuc [expr {$hdsuccess + $hdcount}] 

그러나 어떤 이유로 인해이를 나눌 수 없습니다. 다음은 전혀 작동하지 않습니다.

set hdsuc [expr {$hdsuccess/$hdcount}] 

위의 값은 0입니다. 설정에 문제가 있습니까?

+3

나는'expr {1/2}'와'expr {1.0/2} '를 비교할 때 정수 나누기를 수행하고 있다고 생각합니다. 나는 "옳은"해결책이 무엇인지 아는 데 충분한 TCL을 모르지만, 미안합니다. –

답변

7

정수 나누기를하고 있습니다. 인수 중 하나를 double로 변환해야합니다. 예 :

set hdsuc [expr {double($hdsuccess)/$hdcount}] 
+1

+1 "캐스트"라는 단어를 사용합니다. 그것은 캐스트가 아니며 전환입니다. :-) –

+0

아, 당신은 나를 반복적으로 구해 주셨습니다! 감사. – thelazydeveloper

관련 문제