2009-08-20 3 views
0

나는 부채 계산 프로그램을 개발하고있다. 내 문제는 내가 28.04에 오는 부채를 갚을 개월을 계산해야하고 나는 29 어떤 사람이 나를 도울 수 있습니까? 는나는 vb.net에서 가치를 반올림 할 필요가있다

내 코드는 다음과 같습니다 사전에 감사합니다

Dim b, SubMtP As Integer 
    Dim outsUm, si 

    outsUm = TextBox1.Text 

    SubMtP = Format(Val(TextBox1.Text)/Val(TextBox2.Text), "0.00") 
    Math.Round(SubMtP + 1) 
    TextBox5.Text = Format(Val(TextBox4.Text)/12, "0.00") 

    For i As Integer = 1 To SubMtP 
+0

당신은'Math.Round'를 호출하지만 반환 값을 변수에 할당하지 않거나 그렇지 않으면 그것을 사용합니다. 결과는 반올림 된 값이 즉시 삭제됩니다. 실제로 거기에서 무엇을하려고합니까? –

답변

5

사용 Math.Ceiling을.

1

라인

Math.Round(SubMtP + 1) 

아무것도하지 않는다 (부작용이없는) 당신이 assinging하거나 결과를 사용하지 않기 때문에.

28.04에서 29로 변경하려는 경우 Math.Ceiling을 원할 것입니다. 그것은 당신이 뭘 하려는지 알 힘들지만, 파벨이 코멘트에 말했듯이 당신은 아마

SubMtP = Math.Ceiling(SubMtP); 
2

를 원하는, 당신은 결과를 할당해야합니다, 당신은 Ceiling을 사용해야합니다

Dim result As Double = Math.Ceiling(SubMtP) 

당신에게 도 강력하게 코드에서 Option Strict On을 전환하여 엄격한 정적 유형 검사를 사용하도록 설정하는 것이 좋습니다. 이렇게하면 위의 코드에서 정리해야 할 몇 가지 컴파일 오류가 발생합니다. 좋은 코드는이 코드 조각이 잠재적 인 오류이므로 유지 관리하고 이해하기가 어렵 기 때문에입니다.

+0

'Option Strict On'만의 경우 +1 –

관련 문제