преобразование float в dec
сергей24567
Дата: Четверг, 28.05.2020, 09:01 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация:
0
±
Замечаний:
0% ±
Excel 2019
Здравствуйте, возможно ли в excel написать формулу или иную процедуру для преобразования числа float в десятичный вид? Если да, то как?
Здравствуйте, возможно ли в excel написать формулу или иную процедуру для преобразования числа float в десятичный вид? Если да, то как? сергей24567
Ответить
Сообщение Здравствуйте, возможно ли в excel написать формулу или иную процедуру для преобразования числа float в десятичный вид? Если да, то как? Автор - сергей24567 Дата добавления - 28.05.2020 в 09:01
Pelena
Дата: Четверг, 28.05.2020, 15:17 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19508
Репутация:
4620
±
Замечаний:
±
Excel 365 & Mac Excel
Поменять формат не вариант? Если имеете в виду неточность вычислений чисел с плавающей запятой, то обычно использую функцию ОКРУГЛ(). Приведите пример, что есть и что надо.
Поменять формат не вариант? Если имеете в виду неточность вычислений чисел с плавающей запятой, то обычно использую функцию ОКРУГЛ(). Приведите пример, что есть и что надо. Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Поменять формат не вариант? Если имеете в виду неточность вычислений чисел с плавающей запятой, то обычно использую функцию ОКРУГЛ(). Приведите пример, что есть и что надо. Автор - Pelena Дата добавления - 28.05.2020 в 15:17
сергей24567
Дата: Четверг, 28.05.2020, 15:53 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация:
0
±
Замечаний:
0% ±
Excel 2019
есть некие числа типа 0x3FCCCCCD 0x3F800000 0x40B9999A 0x40A00000 надо в десятичный вид перевести. много таких файлов, ручками муторно.
есть некие числа типа 0x3FCCCCCD 0x3F800000 0x40B9999A 0x40A00000 надо в десятичный вид перевести. много таких файлов, ручками муторно. сергей24567
Ответить
Сообщение есть некие числа типа 0x3FCCCCCD 0x3F800000 0x40B9999A 0x40A00000 надо в десятичный вид перевести. много таких файлов, ручками муторно. Автор - сергей24567 Дата добавления - 28.05.2020 в 15:53
krosav4ig
Дата: Пятница, 29.05.2020, 01:36 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
функция Hex2Sng отсюда
[vba]
Код
Option Explicit Type uab4: ab(0 To 3) As Byte: End Type Type uab8: ab(0 To 7) As Byte: End Type Type uFlt: f As Single: End Type Type uDbl: d As Double: End Type Function Byte2Sng(ab() As Byte) As Single Dim ub As uab4 Dim uf As uFlt ub.ab(3) = ab(0) ub.ab(2) = ab(1) ub.ab(1) = ab(2) ub.ab(0) = ab(3) LSet uf = ub Byte2Sng = uf.f End Function Function Hex2Sng(ByVal s As String) As Single Const sPad As String = "00000000" Dim i As Long Dim ub As uab4 Dim ab(0 To 3) As Byte s = Replace(s, " ", "") If Len(s) > 8 Then Exit Function If Len(s) < 8 Then s = Right(sPad & s, 8) For i = 0 To 3 ab(i) = CByte("&H" & Mid(s, 2 * i + 1, 2)) Next i Hex2Sng = Byte2Sng(ab) End Function
[/vba]
или формула (выдает неверный результат для малых чисел)Код
=(-1)^БИТ.СДВИГП(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));31)*(БИТ.ИЛИ(БИТ.И(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));8388607);8388608)*2^(БИТ.И(БИТ.СДВИГП(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));23);255)-127-23))
функция Hex2Sng отсюда
[vba]
Код
Option Explicit Type uab4: ab(0 To 3) As Byte: End Type Type uab8: ab(0 To 7) As Byte: End Type Type uFlt: f As Single: End Type Type uDbl: d As Double: End Type Function Byte2Sng(ab() As Byte) As Single Dim ub As uab4 Dim uf As uFlt ub.ab(3) = ab(0) ub.ab(2) = ab(1) ub.ab(1) = ab(2) ub.ab(0) = ab(3) LSet uf = ub Byte2Sng = uf.f End Function Function Hex2Sng(ByVal s As String) As Single Const sPad As String = "00000000" Dim i As Long Dim ub As uab4 Dim ab(0 To 3) As Byte s = Replace(s, " ", "") If Len(s) > 8 Then Exit Function If Len(s) < 8 Then s = Right(sPad & s, 8) For i = 0 To 3 ab(i) = CByte("&H" & Mid(s, 2 * i + 1, 2)) Next i Hex2Sng = Byte2Sng(ab) End Function
[/vba]
или формула (выдает неверный результат для малых чисел)Код
=(-1)^БИТ.СДВИГП(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));31)*(БИТ.ИЛИ(БИТ.И(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));8388607);8388608)*2^(БИТ.И(БИТ.СДВИГП(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));23);255)-127-23))
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение функция Hex2Sng отсюда
[vba]
Код
Option Explicit Type uab4: ab(0 To 3) As Byte: End Type Type uab8: ab(0 To 7) As Byte: End Type Type uFlt: f As Single: End Type Type uDbl: d As Double: End Type Function Byte2Sng(ab() As Byte) As Single Dim ub As uab4 Dim uf As uFlt ub.ab(3) = ab(0) ub.ab(2) = ab(1) ub.ab(1) = ab(2) ub.ab(0) = ab(3) LSet uf = ub Byte2Sng = uf.f End Function Function Hex2Sng(ByVal s As String) As Single Const sPad As String = "00000000" Dim i As Long Dim ub As uab4 Dim ab(0 To 3) As Byte s = Replace(s, " ", "") If Len(s) > 8 Then Exit Function If Len(s) < 8 Then s = Right(sPad & s, 8) For i = 0 To 3 ab(i) = CByte("&H" & Mid(s, 2 * i + 1, 2)) Next i Hex2Sng = Byte2Sng(ab) End Function
[/vba]
или формула (выдает неверный результат для малых чисел)Код
=(-1)^БИТ.СДВИГП(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));31)*(БИТ.ИЛИ(БИТ.И(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));8388607);8388608)*2^(БИТ.И(БИТ.СДВИГП(ШЕСТН.В.ДЕС(ПСТР(A3;3;8));23);255)-127-23))
Автор - krosav4ig Дата добавления - 29.05.2020 в 01:36
сергей24567
Дата: Пятница, 29.05.2020, 08:21 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация:
0
±
Замечаний:
0% ±
Excel 2019
Спасибо. на будущее пригодится. Свою проблему обошёл по другому, числа у меня встречаются на 80% одинаковые, преобразовал ручками, вывел в таблицу и сделал через =ВПР(), а остальные 20% руками.
Спасибо. на будущее пригодится. Свою проблему обошёл по другому, числа у меня встречаются на 80% одинаковые, преобразовал ручками, вывел в таблицу и сделал через =ВПР(), а остальные 20% руками. сергей24567
Ответить
Сообщение Спасибо. на будущее пригодится. Свою проблему обошёл по другому, числа у меня встречаются на 80% одинаковые, преобразовал ручками, вывел в таблицу и сделал через =ВПР(), а остальные 20% руками. Автор - сергей24567 Дата добавления - 29.05.2020 в 08:21