|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Igor Mikhailov 2:5005/42.21 26 Sep 2000 05:41:40 To : Artem Chuprina Subject : Mason -------------------------------------------------------------------------------- password: :-P IM>>> Так вот эта ошибка вылечилась у меня простым занесением 0.8 в IM>>> кавычки: return '0.8'; MS>> Это Джонатан Шварц все забывает исправить этот глючок. MS>> Проявляется, когда локаль не английская (а именнно разделитель MS>> десятичной дроби не точка) AC> Да, настоятельно рекомендуется таки ставить локаль так, чтобы AC> разделитель десятичной дроби был точкой (LC_NUMERIC=C). И чтобы дату AC> отдавал по-английски (LC_TIME=C). А то глюков не оберешься. Предлагаю это в FAQ. AC> У нас вот недавно перл из-за setlocale(LC_ALL,'ru_RU.KOI8-R') AC> отказался умножать на 0.01. Во была песня, пока нашли... Хорошо, а почему у меня: % locale LANG=ru_RU.KOI8-R LC_CTYPE="ru_RU.KOI8-R" LC_NUMERIC="ru_RU.KOI8-R" LC_TIME="ru_RU.KOI8-R" LC_COLLATE="ru_RU.KOI8-R" LC_MONETARY="ru_RU.KOI8-R" LC_MESSAGES="ru_RU.KOI8-R" LC_ALL= Hо ------------------------- use locale; use POSIX qw (locale_h); setlocale(LC_ALL,'ru_RU.KOI8-R'); print scalar(localtime),"\n"; print 0.9*0.1,"\n"; ----------------------------- Tue Sep 26 05:30:37 2000 # по англ. почему? 0,09 # здесь с запятыми. и проблем при компиляции # нету. почему же в мазоне есть? ----------------------------- А так : ---------------------------- use locale; use POSIX qw (locale_h); setlocale(LC_ALL,'ru_RU.KOI8-R'); setlocale(LC_NUMERIC,'C'); print scalar(localtime),"\n"; print 0.9*0.1,"\n"; ------------------------------- Tue Sep 26 05:31:51 2000 # все также, почему? 0.09 # здесь нормально. ------------------------------ И кстати, в плане оффтопика: mysql сортирует неправильно koi8r строки. Моя локаль выше. Скомпилен mysql не так, или я что то не так делаю (как у него узнать параметры компиляции)? Hикаких телодвижений для того, чтоб он выдавал мне все правильно я не делаю. Просто делаю запрос с order by name - возвращает не правильно. Причем даже в своем консольном клиенте. mysql Ver 9.35 Distrib 3.22.26a, for pc-linux-gnu (i686) With best wishes Igor. --- GoldED/LNX 3.0.1 * Origin: Ох, тяжелая это работа - почту тащить у нода! (2:5005/42.21) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/326439d0373a.html, оценка из 5, голосов 10
|