변수를 십진수로 선언
저는 선언된 데이터 유형이 없는 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
필요한 정밀도에 따라 달라집니다.데이터 유형Single
4바이트를 사용하며 범위는 -3.402823E38 ~ 1.401298E45입니다. Double
8바이트를 사용합니다.
다음과 같이 선언할 수 있습니다.
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
'programing' 카테고리의 다른 글
TypeScript에서 연산자를 사용하는 이유는 무엇입니까? (0) | 2023.06.09 |
---|---|
MariaDB 가져오기 최대 키 길이 (0) | 2023.06.09 |
4 JOIN에서 1개의 테이블을 피벗해야 합니다. (0) | 2023.06.09 |
열 레이블을 변경하시겠습니까? 예: 열 "A"를 열 "이름"으로 변경합니다. (0) | 2023.06.09 |
IPython을 사용한 단계별 디버깅 (0) | 2023.06.09 |