vb.net мантисса и расчет показателя от двойного - PullRequest
3 голосов
/ 18 октября 2010

Может кто-нибудь дать какой-нибудь совет о том, как получить мантиссу и экспоненту с двойного в VB.net?Я знаю, что могу выполнить синтаксический анализ строки и преобразовать ее в целые, но мне было интересно, есть ли у кого-нибудь математическая эквивалентная формула, которая позволила бы мне это сделать?

Ответы [ 2 ]

2 голосов
/ 18 октября 2010

Хотите ли вы получить "родную" мантиссу и показатель степени в пределах значения IEEE-754? Это на самом деле довольно просто: используйте BitConverter.DoubleToInt64Bits, чтобы получить значение в виде целого числа (что проще для выполнения битовых операций), а затем посмотрите мою статью о двоичных типах .NET с плавающей запятой для каких битов где.

У меня есть некоторый C # код , который извлекает различные части, чтобы преобразовать его в точное десятичное представление - вы можете довольно легко преобразовать соответствующие биты этого в VB.

0 голосов
/ 04 ноября 2014

Вы должны попробовать это:

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
...