在VBScript中以指数形式显示/格式化输出
我在做一些自动化项目 数据以第三方硬件的形式在LabVIEW中传递,并通过浮点数据类型的OPC服务器进一步传递给WinCC Flexible 输出显示字段支持字符串输出。在VBScript中处理显示字段上显示的数据 目前面临的问题是: WinCC支持浮动标签,最大长度为4 显示字段上显示的输出类型为字符串。 当数据通过LabVIEW传递时,会发生以下情况: 例1: LabVIEW数据:1.27e-4 | WinCC Flex上的输出:0.000127[表示错误] e-5以下的所有数据如上所示 例2:在VBScript中以指数形式显示/格式化输出,vbscript,labview,Vbscript,Labview,我在做一些自动化项目 数据以第三方硬件的形式在LabVIEW中传递,并通过浮点数据类型的OPC服务器进一步传递给WinCC Flexible 输出显示字段支持字符串输出。在VBScript中处理显示字段上显示的数据 目前面临的问题是: WinCC支持浮动标签,最大长度为4 显示字段上显示的输出类型为字符串。 当数据通过LabVIEW传递时,会发生以下情况: 例1: LabVIEW数据:1.27e-4 | WinCC Flex上的输出:0.000127[表示错误] e-5以下的所有数据如上所示 例
LabVIEW数据:1.27e-10 | WinCC Flex上的输出:1.27e-10[正确的代表] VBScript中是否有方法将输出数据格式化为指数表示法 目前我正在使用此VBS作为表示
If SmartTags("tag_06_1") = 0 Then SmartTags("output_1") = CStr (SmartTags("presseure_test"))
解决VBScript中所有格式问题的最佳(最有效的)解决方案是利用.NET格式。简单POC脚本:
Dim aNums : aNums = Split("0.123 1.27e-4 1.27e-10")
Dim sNum
For Each sNum in aNums
WScript.Echo sNum, CDbl(sNum), fmtExpNum(CDbl(sNum))
Next
Function fmtExpNum(dblX)
Dim oSB : Set oSB = CreateObject("System.Text.StringBuilder")
oSB.AppendFormat "{0:E2}", dblX
fmtExpNum = oSB.ToString()
End Function
输出(德语区域设置):
0.123 0,123 1,23E-001
1.27e-4 0,000127 1,27E-004
1.27e-10 0,000000000127 1,27E-010