在VBScript中以指数形式显示/格式化输出

时间:2013-05-07 11:14:28

标签: vbscript labview

我正在开展一些自动化项目。

数据在LabVIEW中通过第三方硬件传递,并通过浮点数据类型的OPC服务器进一步传递给WinCC flexible。

输出显示字段支持字符串输出。显示字段上显示的数据在VBScript中处理。

面临的问题是:

WinCC support float 标记,最大长度为4。

显示字段上显示的输出是字符串类型。 当数据通过LabVIEW传递时:

示例1:            LabVIEW数据:1.27e-4 | WinCC Flex上的输出:0.000127 [错误的表示] e-5以下的所有数据如上所示。

例2:
           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"))

1 个答案:

答案 0 :(得分:2)

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