programing

변수를 십진수로 선언

showcode 2023. 6. 9. 22:10
반응형

변수를 십진수로 선언

저는 선언된 데이터 유형이 없는 VBA의 매크로를 최적화하고 있습니다. 그래서 컴파일러는 모든 것을 변형으로 취급했습니다.저는 과학적인 측정을 다루고 있기 때문에 정확성이 필요합니다.

선언 방법Dim decAsdf as Decimal(그런 것이 아니라 적절한 방법)?

변수를 다음과 같이 선언할 수 없습니다.Decimal사용해야 합니다.Variant(사용할 수 있습니다.CDec그것을 채우다 보면,Decimal입력합니다.

변수를 변수로 선언하는 방법Decimal처음에 그것을 a로 선언합니다.Variant다음으로 변환합니다.Decimal와 함께CDec유형은 다음과 같습니다.Variant/Decimal시계 창에서:

여기에 이미지 설명 입력

부동소수점 연산을 프로그래밍하는 것이 학교 수학 시간에 공부한 것이 아니라는 점을 고려하면, 가능할 때마다 소수점으로 변환하여 일반적인 함정을 피하려고 항상 노력해야 합니다.

아래 예제에서는 다음 식을 확인할 수 있습니다.

0.1 + 0.11 = 0.21

둘 중 하나입니다.True또는False수집품(0.1,0.11)이 다음과 같이 선언되는지 여부에 따라Double또는 로서Decimal:

Public Sub TestMe()

    Dim preciseA As Variant: preciseA = CDec(0.1)
    Dim preciseB As Variant: preciseB = CDec(0.11)

    Dim notPreciseA As Double: notPreciseA = 0.1
    Dim notPreciseB As Double: notPreciseB = 0.11

    Debug.Print preciseA + preciseB
    Debug.Print preciseA + preciseB = 0.21 'True

    Debug.Print notPreciseA + notPreciseB
    Debug.Print notPreciseA + notPreciseB = 0.21 'False

End Sub

여기에 이미지 설명 입력

가장 좋은 방법은 변수를 다음과 같이 선언하는 것입니다.Single또는Double필요한 정밀도에 따라 달라집니다.데이터 유형Single4바이트를 사용하며 범위는 -3.402823E38 ~ 1.401298E45입니다. Double8바이트를 사용합니다.

다음과 같이 선언할 수 있습니다.

Dim decAsdf as Single

또는

Dim decAsdf as Double

다음은 계산 후 변수 값이 포함된 메시지 상자를 표시하는 예입니다.당신이 해야 할 일은 그것을 모듈에 넣고 실행하는 것입니다.

Sub doubleDataTypeExample()
Dim doubleTest As Double


doubleTest = 0.0000045 * 0.005 * 0.01

MsgBox "doubleTest = " & doubleTest
End Sub

언급URL : https://stackoverflow.com/questions/30917438/declare-a-variable-as-decimal

반응형