![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Вчера увидел одну немаловажную особенность С-шной функции atof, о которой хотел всех предупредить.
Ну во-первых, функция переводит строковое значение числа в вещественное число. Особенность функции заключается в том, что этот перевод зависит от locale, которое устанавливается функцией setlocale! Например, если в приложении установлено вот так:
Т.е. в данной системе знаковым разделителем будет являться запятая. А если вот так:
Помните об этой особенности, если пользуетесь подобными функциями (не Qt)! ![]() |
|
|
![]() |
niXman |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 169 Регистрация: 18.6.2008 Пользователь №: 204 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
AD, Не подумал бы
![]() а по мне дак это чушь полная, т.к. в исходном коде программ десятичный разделитель всегда был точкой! Абсолютно верно! Но в связи с повсеместным распространением кривых программ, которые не учитывают локаль, сейчас часто используют и точку и запятую. Я всегда, в независимости от локали, заменяю запятую на точку, до передачи функции. Лично по мне, так я не считаю удобным то, что программисту приходится следить за тем, что поставлено: точка или запятая. Мне кажется, что надо бы было сделать функцию так, чтобы она понимала оба этих разделителя одновременно. Опять верно! |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 22.6.2025, 8:23 |