Страница: 1 |
Страница: 1 |
Вопрос: Свои CStr и CDbl
Добавлено: 27.10.05 18:14
Автор вопроса: Страшный Сон
Реально ли в VB6 сделать полностью свои функции конверсии данных? Меня интересует String - Double и Double - String.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #1
Добавлено: 27.10.05 22:45
Конечно реально:
Floating-point numbers use the IEEE (Institute of Electrical and Electronics Engineers) format
поэтому, изучаешь сей формат, и вперёд, на мины.
Сводится к элементарному парсингу
Номер ответа: 2
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #2
Добавлено: 28.10.05 12:26
Где могу найти подробное описание? Желательно на русском.
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 28.10.05 12:58
http://bbs.vbstreets.ru/viewtopic.php?t=7389
Номер ответа: 4
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #4
Добавлено: 28.10.05 13:45
На русском не знаю, на английском в msdn есть.
Там ничего сложного нет. Первый бит - знак числа.
Далее:
float 8 bits 23 bits
double 11 bits 52 bits
Понятно, что float - это single.
Единственно надо учитывать, что экспонента храниться в беззнаковой форме:
Т.е. если экспонента меньше 127, то это отрицательная экспонента, если больше - положительная. Для double соответственно больше и меньше 1023.
Номер ответа: 5
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #5
Добавлено: 28.10.05 23:19
Можно поинтересоваться... чем не подошли функции VB?
Номер ответа: 6
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #6
Добавлено: 28.10.05 23:24
Да мне нужно, чтобы результат не зависел от настроек Windows...
Номер ответа: 7
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #7
Добавлено: 28.10.05 23:47
Тогда можно так.
Где-нибудь при старте программы
MyCDbl=cdbl(replace(st,".",DecimalSeparator))
End function
Function MyCStr(byval d as double) as String
MyCStr = replace(cstr(d),DeciamlSeparator,"."
End function
По-моему, прокатит, если я нигде не опечатался. Везде будет использовать точку как разделитель целой и дробной части.
Я надеюсь, что все учел.
Номер ответа: 8
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #8
Добавлено: 29.10.05 00:49
Странные вы.
str$ и val не зависят от настроек.
Номер ответа: 9
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #9
Добавлено: 29.10.05 01:16
Чистая правда. Вот только Val иногда замены требует - она ошибку не выдает, когда туда фигню ввели. А вот Str всем хороша, и как то я сразу не догадался вместо