또 다른 구현은 DotNetFactory를 사용합니다. 또 다른 생각. 나는 사용을 부인하지 않고있다 CDbl. 그러나 가치가있다.
'Test Code
Dim strConvertedCode
strConvertedCode = ConvertDataType("1000000.589765","Double")
If strConvertedCode <> null Then
Msgbox strConvertedCode
End If
Public Function ConvertDataType(ByVal SourceData,ByVal ConversionDataType)
'Initialization of variables
Dim objDotNetFactory
Dim strConvertedData : strConvertedData = null
Dim strSystemNamespace
'Determine the destination data type
Select Case UCase(ConversionDataType)
Case "DOUBLE"
strSystemNamespace = "System.Double"
'Implement further for your data types
'Reference https://msdn.microsoft.com/en-us/library/ms228360(v=vs.90).aspx
Case Default
Set objDotNetFactory = DotNetFactory.CreateInstance("System.Int32")
End Select
Set objDotNetFactory = DotNetFactory.CreateInstance(strSystemNamespace)
'Check the dot net factory instance is successful
If Not IsObject(objDotNetFactory) Then
Reporter.ReportEvent micWarning,"Data type convertor","Conversion from String to " & ConversionDataType & " failed, Since DotNetFactory instance was not created."
ConvertDataType = strConvertedData
Exit Function
End If
strConvertedData = objDotNetFactory.Parse(SourceData)
ConvertDataType = strConvertedData
End Function
코드가 맞습니다 ... 제 테스트에서 1000000.5898이 있습니다. 인쇄 영역을 지우고 다시 확인하십시오. 아마도 코드에서 strV1이 아닌 vStr을 인쇄하고있을 것입니다. 정직하기 위해 formatnumber를 필요로하지 않습니다. –
동일한 코드를 실행했으며 결과는 10 진수가 아닙니다. 왜 그런 일이 일어나는지 확신 할 수 없습니다. 또한 "formatNumber"제거 할 때이 작동하지 않고 값을 double로 변환 할 수 없습니다. – cjmax006
이것이 HP-UFT에만 국한되는 것이 아니라 VB의 문제인지 궁금합니다. Ive는 그것을 중복으로 표시했습니다. – Dan