Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / float to int в VC 2003 / 7 сообщений из 7, страница 1 из 1
28.07.2006, 23:49
    #33886576
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
float to int в VC 2003
Вот, в очередной раз напоролся на глюк конвертации float/double в int/long на VC 2003. И наконец заинтересовался, а кто-нибудь пробовал дизассемблировать эту мистическую функцию ftol2()? Что там конкретно делается?
...
Рейтинг: 0 / 0
29.07.2006, 22:40
    #33887249
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
float to int в VC 2003
Как выглядит глюк?
...
Рейтинг: 0 / 0
31.07.2006, 10:08
    #33888267
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
float to int в VC 2003
White OwlИ наконец заинтересовался, а кто-нибудь пробовал дизассемблировать эту мистическую функцию ftol2()? Что там конкретно делается?

Насколько я помню (давно это было) у сопроцессора есть такая команда.
...
Рейтинг: 0 / 0
31.07.2006, 10:46
    #33888405
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
float to int в VC 2003
Могу предположить, что глюк выглядит как пропадание дробной части. Я угадал ?
...
Рейтинг: 0 / 0
31.07.2006, 19:04
    #33890216
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
float to int в VC 2003
Нет, не угадали. Не видели что ли ни разу?
Код: 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
01.08.2006, 11:57
    #33891404
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
float to int в VC 2003
А является ли такое присвоение идеологически правильным с
позиции С++ ?

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


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