vb.net尾数和指数计算从double

时间:2010-10-18 08:59:39

标签: vb.net math exponent mantissa

任何人都可以提供有关如何从VB.net中获取尾数和指数的任何建议吗?我知道我可以做一个字符串解析和一些转换为整数但是我想知道是否有人有一个数学等价公式可以让我这样做?

非常感谢

2 个答案:

答案 0 :(得分:2)

您想获得IEEE-754值内的“原生”尾数和指数吗?这实际上相当简单:使用BitConverter.DoubleToInt64Bits将值作为整数(更容易执行位操作),然后查看我的article on .NET binary floating point types哪些位在哪里。

我有一些C# code提取各个部分,以便将其转换为精确的十进制表示 - 您可以合理地将相关位转换为VB。

答案 1 :(得分:0)

你应该试试这个:

Public Function DeclString(ByVal dDegrees As Double) As String
   Dim Flag As String
   Dim ddecimal As Double
   Dim iDegrees As Integer
   If dDegrees < 0 Then Flag = "S" Else Flag = "N"
   iDegrees = Int(Abs(dDegrees))
   ddecimal = (Abs(dDegrees) - iDegrees) * 60 ' + 0.5
   If ddecimal > 59.5 Then iDegrees = iDegrees + 1: ddecimal = 0
   DeclString = Format$(iDegrees, "00") + Flag + Format$(ddecimal, "00")
End Function