Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства / 8 сообщений из 8, страница 1 из 1
26.10.2018, 16:54
    #39723673
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
собственно говоря вопрос в теме
имеем 2 механизма которые возвращают 2 визуально одинаковых значения но знак равенства не срабатывает на них.

имеем результат в флоате
12715,845
и сравниваем с другим результатом в том же флоате
12715,845

визуально одинаковы , как можно отобразить реальные значения, чтобы понять в чем разница?
...
Рейтинг: 0 / 0
26.10.2018, 16:58
    #39723678
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
и округляет на таких позициях по разному
...
Рейтинг: 0 / 0
26.10.2018, 16:59
    #39723680
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
kolyadyвизуально одинаковы , как можно отобразить реальные значения, чтобы понять в чем разница?

declare @f float = 3.14
select CAST(@f as varbinary(8))
...
Рейтинг: 0 / 0
26.10.2018, 17:04
    #39723687
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
Выбирайте любой метод сравнения, множество их
...
Рейтинг: 0 / 0
26.10.2018, 17:19
    #39723698
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
Гавриленко Сергей Алексеевич,

я ms sql юзаю зачем мне пост по С++
...
Рейтинг: 0 / 0
26.10.2018, 17:20
    #39723699
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
kolyadyГавриленко Сергей Алексеевич,

я ms sql юзаю зачем мне пост по С++Там пост про float и про то, как можно сравнивать float-значения.
...
Рейтинг: 0 / 0
26.10.2018, 17:23
    #39723700
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
Гавриленко Сергей Алексеевич,

и все варианты сравнения тож на с++. Которые я в студии никак не напишу.
...
Рейтинг: 0 / 0
26.10.2018, 17:35
    #39723709
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства
kolyadyГавриленко Сергей Алексеевич,

и все варианты сравнения тож на с++. Которые я в студии никак не напишу.Тогда в управдомы, если вы не в состоянии написать abs(@f1 - @f2) < @FLT_EPSILON.

Как вычислять @FLT_EPSILON, если нет такой константы, ищется за 30 секунд .

Код для лентяев на MSSQL:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
    @FLT_EPSILON        float   = 1

    , @1f               float   = 1
    , @2f               float   = 2

while ( @1f + @FLT_EPSILON / @2f ) > @1f
    set @FLT_EPSILON /= @2f

select @FLT_EPSILON



Применимость данного способа и остальные варианты изучайте уже самостоятельно.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тип данных float сравнивая 2 числа визуально одинаковых не срабатывает знак равенства / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]