powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / float to int в VC 2003
7 сообщений из 7, страница 1 из 1
float to int в VC 2003
    #33886576
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, в очередной раз напоролся на глюк конвертации float/double в int/long на VC 2003. И наконец заинтересовался, а кто-нибудь пробовал дизассемблировать эту мистическую функцию ftol2()? Что там конкретно делается?
...
Рейтинг: 0 / 0
float to int в VC 2003
    #33887249
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выглядит глюк?
...
Рейтинг: 0 / 0
float to int в VC 2003
    #33888267
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlИ наконец заинтересовался, а кто-нибудь пробовал дизассемблировать эту мистическую функцию ftol2()? Что там конкретно делается?

Насколько я помню (давно это было) у сопроцессора есть такая команда.
...
Рейтинг: 0 / 0
float to int в VC 2003
    #33888405
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу предположить, что глюк выглядит как пропадание дробной части. Я угадал ?
...
Рейтинг: 0 / 0
float to int в VC 2003
    #33890216
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не угадали. Не видели что ли ни разу?
Код: plaintext
1.
2.
double d;
int i;
i=d;
Вот такой код на cl 13+ (из VC 2003 и дальше) превратит в вызов системной функции ftol2 которя по идее должна делать конвертацию из дабла в инт.
Но если пишешь под Win32 с использованием SDK линкер почему-то эту функцию в libc не находит.
Сами микрософты предлагают решать эту проблему использованием опции компилятора -Qifist, которая вместо call __ftol2 будет делать fistp QWORD PTR tvXXX[esp+NN] . Но очень не рекомендуют, потому что поведение fistp зависит от настроек, а ftol2 якобы универсальная.
Вот и хочется посмотреть на тот универсальный код.
...
Рейтинг: 0 / 0
float to int в VC 2003
    #33891404
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А является ли такое присвоение идеологически правильным с
позиции С++ ?

Честно говоря.. давно не читал спецификации.
Надо-бы освежить память.
...
Рейтинг: 0 / 0
float to int в VC 2003
    #33893060
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА является ли такое присвоение идеологически правильным с
позиции С++ ?Вполне. Ругнется варнингом на возможную потерю точности, но и только. В крайнем случае замени i=d; на i=(int)d; :)
Проблема то в самой связке VC2003 и SDK.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / float to int в VC 2003
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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