소스의 처리한 이미지 입니다.
소스는 다음과 같습니다.
' 소수를 분수로 표시하기(소수 부분만 정수 부분은 그대로)
Option Explicit
Private Sub txtFloat_KeyDown(KeyCode As Integer, Shift As Integer)
If Not KeyCode = vbKeyReturn Then Exit Sub
If InStr(1, txtFloat.Text, ".") = 0 Then Exit Sub
Dim stringNumber As String ' 수치를 문자열로
Dim IntegerNumber As Long ' 정수부
Dim RealNumber As Long ' 실수부
Dim MultilerNumber As Long ' 실수부에 수에 대한 승수
stringNumber = txtFloat.Text
MultilerNumber = InStr(stringNumber, ".")
IntegerNumber = Val(Left(stringNumber, MultilerNumber - 1))
RealNumber = Val(Mid(stringNumber, MultilerNumber + 1))
MultilerNumber = 10 ^ Len(CStr(RealNumber))
While RealNumber Mod 5 = 0 And MultilerNumber Mod 5 = 0 ' 약분한다.
RealNumber = RealNumber / 5
MultilerNumber = MultilerNumber / 5
Wend
While RealNumber Mod 3 = 0 And MultilerNumber Mod 3 = 0
RealNumber = RealNumber / 3
MultilerNumber = MultilerNumber / 3
Wend
While RealNumber Mod 2 = 0 And MultilerNumber Mod 2 = 0
RealNumber = RealNumber / 2
MultilerNumber = MultilerNumber / 2
Wend
MsgBox IIf(IntegerNumber > 0, IntegerNumber & " ", "") & RealNumber & "/" & MultilerNumber
End Sub
'VB6' 카테고리의 다른 글
베지어 곡선 그리기(1차 곡선) (0) | 2011.09.18 |
---|---|
vb6에서 정규식으로 문자열을 찾자. (0) | 2011.09.16 |
유니코드 한글 초성,중성,종성 분리 (0) | 2011.09.09 |
가상 레코드셋(컨넥션이 없이 레코드셋 구조 생성) (0) | 2011.09.08 |
유니코드, ANSI코드 확인 (0) | 2011.09.06 |