3

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

非常感谢

4

2 回答 2

2

您想获得 IEEE-754 值内的“本机”尾数和指数吗?这实际上相当简单:使用BitConverter.DoubleToInt64Bits以整数形式获取值(更容易对其执行位操作),然后查看我关于 .NET 二进制浮点类型的文章,其中位在哪里。

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

于 2010-10-18T09:03:58.140 回答
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
于 2014-11-04T01:12:36.487 回答