2016-08-02 112 views
1

我正在編輯visual basic的項目,並沒有很多vb的經驗。如何將double轉換爲Hex字符串?

我有一個文本框,用戶可以輸入一個數字。該數字應該以雙精度進行存儲。然後,我需要將數字轉換爲它的等效16字節十六進制表示。有關如何做到這一點的任何提示?

+0

十六進制功能:https://msdn.microsoft.com/en-us/library/963zt96e(v=vs.90).aspx – Mikegrann

+0

@Mikegrann然而,小數部分將被舍入。 – litelite

+0

是的,我需要一個16字節的十六進制值,不管數字是什麼。所以,如果我輸入10,它應該返回4024000000000000,而不是A. –

回答

0

我剛剛有這樣的問題。我的想法是從Now()函數中抽出時間,並用逗號分隔它。然後將其轉換爲十六進制。經過一段時間的研究,我想出了這樣的想法,即輸入應該四捨五入。到8,否則我們可能會發生溢出錯誤。這是我的代碼(在VBA作品)

Public Function codify_time() As String 

    If [set_in_production] Then On Error GoTo codify_Error 

    Dim dbl_01     As Variant 
    Dim dbl_02     As Variant 
    Dim dbl_now     As Double 

    dbl_now = Round(Now(), 8) 

    dbl_01 = Split(CStr(dbl_now), ",")(0) 
    dbl_02 = Split(CStr(dbl_now), ",")(1) 

    codify_time = Hex(dbl_01) & "_" & Hex(dbl_02) 

    On Error GoTo 0 
    Exit Function 

codify_Error: 

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure codify of Function TDD_Export" 

End Function 
相關問題