2014-04-08 6 views
3

에서 반올림 :정수 값은 내가 아래 코드를 VB.NET

Dim num1 As Integer 
Dim num2 As Integer 

num1 = 12.5 
num2 = 17.5 

I 출력 값, 내가 도착하면이 : 12

num1: 12 
num2: 18 

12.5 경우, 17.5 있어야하는데 17?

17.518이 될 경우, 12.513?

저는 Visual Basic에서 매우 새롭고 이에 대한 참조를 찾기가 어렵습니다.

답변

7

라운딩 위치에서 나머지 .5 때,이 방법에서

Integer documentation에 명시된 VB 사용 banker’s rounding (round-to-even rule), 즉 숫자 를 반올림 때문에이 때 수 전에도 홀수이고 이전의 수를 반올림하여 인 경우에도입니다. 라운드에 심지어

2.5 round down to the even number 2.0, 
3.5 would round up to the even number 4.0 
1

기본적으로 VB.NET 가장 가까운 짝수로 반올림 때문이다 규칙 사용 예를 들어

. 그래서 12.5는 12이고 17.5는 18이므로 17은 홀수입니다.

3

어쨌든 Double 값을 Integer 개의 변수에 할당하면 안됩니다. 암시 적 전환에 의존 할 때마다 원하는 방식으로 일이 발생하지 않으면 놀라지 않을 것입니다. 즉, 명시적인 전환 (예 : CInt, 같은 일을 할 것입니다.

Math.Round 방법과 특히 MidpointRounding 값을 갖는 과부하에 대한 설명서를 확인하십시오. 이것이 그러한 가치가 반올림되는 방식을 제어하는 ​​방법입니다.