2016-08-02 121 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 
相关问题