2012-05-28 3 views
1

VBA를 학습하면서 읽은 모든 소스에서 \ 연산자가 정수 나누기를 수행한다고 알려줍니다. 그래서 나는 그것을 부동 소수점의 정수 부분을 추출하는 데 사용할 수 있다고 생각했습니다. 내가 계산 할 필요가Excel 2010 VBA 백 슬래시 () 연산자

A = 5 
B = 50% 

:

나는이 같은 스프레드 시트를 C = A x B을 모두 버림해야 가장 가까운 정수 (즉, 어떤 2.01, 2.1, 2.9, 2.99 등으로 내림 2).

내가이 할 수있는 생각 :

C = (A * B) \ 1 

그러나이 작동하지 않습니다 - 플로트 부분은 반올림되어 정수를 수행하기 전에 (즉, 2.25 3로 이동합니다) 나에게 나타납니다 분할.

내가 지금 이런 짓을했는지 :

( A * B 정수 가능성이 표현 문제에 정확히 동일) 어떤 경우에는 작동하지 않습니다
C = (A * B - 0.5) \ 1 

.

그 밖의 무엇을 할 수 있습니까?

+0

무엇 요 당신이 말하기 때문에 당신이 말하기 때문에 당신이 말하기 때문에 지금 쓰여진 것은 거의 이해가 안됩니다. 3 **에 이르기까지 모두 반올림하고 2.25에서 3으로 반올림하는 것은 잘못된 것입니다. 당신의 마음을 만드십시오! 3이 잘못 되었습니까? 아닙니다. 2.01은 3에 '가장 가까운'것이 아니며 3은 2에서 내려간 것이 아닙니다. http://en.wikipedia.org/wiki/ 반올림 모드의 이름은 반올림하고 동사는 반올림하지 마십시오. "혼란을 가져올 수 있기 때문에 단순히"둥근 "의미하는 경우. 재정적/회계 적 반올림 작업을해야한다면 "to-even"(그래서 '3'이 아님)을 기억하고 "to-even", "fiscal"또는 "statistically-safe"라고 부릅니다. – quetzalcoatl

+0

@ Wolfie 오, 오, 나는 이것에 대해 대답하려고했고, 6 년 전에 질문 받았다는 것을 깨달았다. –

+0

@DarrenBartrup 나는 대답을 찾고, 오타와 잘못된 포맷을 보았고, 미래의 독자들을 위해 그것을 찾은 것보다 더 알맞은 곳을 떠났다. 이미 여기있는 것보다 더 나은 답을 제공 할 수 있습니다. – Wolfie

답변

0

Duh. 내가 할 수 있었다 나타납니다

지능 (A *의 B)

은 내가 원하는 것을 얻을 수 있습니다.

+0

그래서 TRUNCATE 또는 ROUND : CLOSEST-TO-ZERO를 의미합니까? – quetzalcoatl

0

주의 : 당신이 nearest integer을 찾고 있지만, 천장 기능을하지 않는 그런

any 2.01, 2.1, 2.9, 2.99 etc. all should be rounded down to 3 

. 가장 가까운 정수 라운드 같은 소리 나 (지금 숙제를 가지고 : 둘 사이의 차이를 봐!) 함수를 수정 : Excel에서 사용

천장 기능하십시오 여기 봐, 천장 기능에 대한

걸릴

을 VBA 천장 기능

http://www.excelforum.com/excel-programming/612151-how-to-use-standard-excel-function-in-vba.html

코드 :

http://www.tek-tips.com/faqs.cfm?fid=5031