28 lines
890 B
VB.net
28 lines
890 B
VB.net
Option Explicit
|
|
|
|
Private Declare Sub GetMem8 Lib "msvbvm60.dll" _
|
|
(ByVal SrcAddr As Long, ByVal TarAddr As Long)
|
|
|
|
Sub Main()
|
|
Dim PlusInfinity As Double
|
|
Dim MinusInfinity As Double
|
|
Dim IndefiniteNumber As Double
|
|
On Error Resume Next
|
|
PlusInfinity = 1 / 0
|
|
MinusInfinity = -1 / 0
|
|
IndefiniteNumber = 0 / 0
|
|
Debug.Print "PlusInfinity = " & CStr(PlusInfinity) _
|
|
& " (" & DoubleAsHex(PlusInfinity) & ")"
|
|
Debug.Print "MinusInfinity = " & CStr(MinusInfinity) _
|
|
& " (" & DoubleAsHex(MinusInfinity) & ")"
|
|
Debug.Print "IndefiniteNumber = " & CStr(IndefiniteNumber) _
|
|
& " (" & DoubleAsHex(IndefiniteNumber) & ")"
|
|
End Sub
|
|
|
|
Function DoubleAsHex(ByVal d As Double) As String
|
|
Dim l(0 To 1) As Long
|
|
GetMem8 VarPtr(d), VarPtr(l(0))
|
|
DoubleAsHex = Right$(String$(8, "0") & Hex$(l(1)), 8) _
|
|
& Right$(String$(8, "0") & Hex$(l(0)), 8)
|
|
End Function
|