2013-05-07 120 views
0

我正在開發一些自動化項目。在VBScript中以指數形式顯示/格式化輸出

數據在LabVIEW中以第三方硬件形式傳遞,並通過浮點數據類型的OPC服務器傳遞給WinCC Flexible。

輸出顯示字段支持字符串輸出。數據顯示在顯示字段上,在VBScript中處理。

所面臨的問題是:

的WinCC支持浮子標籤和具有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")) 

回答

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