2011-10-06 3 views
1

qint64 유형의 변수 (정수)를 가장 가까운 10으로 반올림하는 QT 함수를 찾고 있습니다. 은 1013 원 1020유형 qint64의 변수 (정수)를 가장 가까운 숫자로 반올림하는 QT 함수 찾기

QT Assistant는 모든이 작업을 수행 할 기능 내장 기재하지 않는 것 것 (1010) 1019 반올림 것입니다,하지만 잘못된 자리에보고 할 수있다 : 예를 들어

.

도움을 주시면 감사하겠습니다.

감사합니다, 웨스

답변

7

당신이 + 교체, 양수에 대한이 오래된 트릭을 시도 할 수 - 부정적인 위해 : 정수와 함께이 작업을 수행하는

i_rounded = 10 * ((i + 5)/10); 
+0

내 파스칼, 편집 된'div' to'/':) – cyco130

+0

감사합니다. 내장 된 기능이 없기 때문에이 기능이 작동했습니다. 도움을 감사하십시오. – Wes

0

나는 매우 QT에 익숙하지만 작동합니까

round(value/10)*10 

에 대해 아니에요?

p.s : 값이 정수인 경우 나누기 전에 double로 변환해야 할 수 있습니다.

1

일반적인 방법을 (절단) 수학 10*((n+5)/10)입니다. 물론 양수입니다.

n = 17: 
17 + 5 = 22 
22/10 = 2 // integer math truncates 
2 * 10 = 20 

n = 12: 
12 + 5 = 17 
17/10 = 1 
1 * 10 = 10 

부정적인를 들어, 기호 -1, 0, 또는 1 수의 기호에 따라 반환하는 경우 5. 부정적인 그래서 공식 정말 …+sign(n)*5입니다 추가 할 수 있습니다.

관련 문제