2013-10-30 6 views
1

im 개발중인 프로그램의 결과에 문제가 있습니다.결과를 반올림하지 않고 2 자리 소수점으로 나눕니다.

예를 들어 메신저가 8672.59인데이를 2로 나누려면 4336.295가되어야합니다. 질문은 두 숫자를 더할 때 올바른 숫자를 얻을 수 있도록 결과를 반올림하여 두 자리 소수점으로 변환 할 수있는 방법입니다.

예.

8672.59/2 = 4336.295

경우 2 자리 digimal 포인트에 반올림 한 결과 난 반올림 아웃 2 디지트 소수점으로 변환하는 방법 4336.30

경우 있도록 8672.59하지 8672.60

은 감사와 같은 것 두 가지 결과를 곱!

+2

말 그대로 불가능합니다. – Ryan

+1

죄송합니다 - 귀하의 질문을 이해하지 못했습니다. 나는 당신이 둥근에서 아무것도 잃지 않고 얻지 않고 홀수 (2 곳까지)를 둥글게하는 방법을 찾고 있다고 생각했습니다. 다시 읽으면서, 나는 @minitech에 동의한다 – IniTech

답변

1

전체에서 반올림 결과를 뺍니다. 당신의 예에서

Dim Total as Double = 8672.59 
Dim OneHalf = Math.Round(Total/2, 2) 
Dim SecondHalf = Total - OneHalf 

, 총 = 8672.59, OneHalf 그래서 = 4336.30 (반올림)

들의 하반기 = 8672.59-4336.30 = 4336.29.

+0

이 1 명의 친구를위한 감사합니다! –

2

이 작업을 되돌릴 수있게하려면 계산을 취소 할 수있는 충분한 정보를 저장해야합니다. 따라서 8672.59/2를 소수점 두 자리까지만 저장하면 2를 곱하면 8672.59를 다시 얻을 수 없습니다. 4336.29 또는 4336.30을 저장했는지 여부에 따라 8672.58 또는 8672.60이됩니다.

이제 소수점 세 자리 (또는 필요한 정밀도)에 숫자를 저장하고 두 개만 표시 할 수 있습니다. 저장된 번호에 2를 곱하면 원래 번호로 되돌아갑니다.

관련 문제