Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема sprintf под mod_perl, проблема с дробным числом 
:(
    Опции темы
myth777
  Дата 22.12.2010, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



Перевели сайт на mod_perl вобщем sprintf("%.2f",100) выдает 100,00 
а хотелось бы чтоб выдавал 100.00
почему вместо точки выводиться запятая? и что делать?
PM MAIL   Вверх
sir_nuf_nuf
Дата 22.12.2010, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



проблема с локалью.
Вывод чисел с плавающей точкой зависит от текущей локали.


Решение:
1) Узнайте какая локаль установлена:
Код

use POSIX qw(:locale_h);
print setlocale(LC_ALL);


2) Установите нужную вам локаль
Код

setlocale(LC_ALL, 'ru_RU.CP1251'); # например



--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
myth777
Дата 22.12.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



Это выводит на отладочном сервере, где всё работает
LC_CTYPE=ru_RU.utf8;LC_NUMERIC=C;LC_TIME=ru_RU.utf8;LC_COLLATE=ru_RU.utf8;LC_MONETARY=ru_RU.utf8;LC_MESSAGES=ru_RU.utf8;LC_PAPER=ru_RU.utf8;LC_NAME=ru_RU.utf8;LC_ADDRESS=ru_RU.utf8;LC_TELEPHONE=ru_RU.utf8;LC_MEASUREMENT=ru_RU.utf8;LC_IDENTIFICATION=ru_RU.utf8

а  ru_RU.KOI8-R это на конечном, где нихрена не работает....

Это надо конфиг апачевский как то настраивать?
PM MAIL   Вверх
ginnie
Дата 23.12.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



myth777, для того, чтобы выводилась точка я использую

Код

setlocale(LC_NUMERIC, 'en_US.ISO8859-1');




--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
myth777
Дата 23.12.2010, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 30.3.2009

Репутация: -1
Всего: -1



в стартовом скрипте из апача(PerlRequire) я сделал

BEGIN {  $ENV{"LC_ALL"}='C';};

и все везде заработатло.

всем спасибо!

Добавлено через 7 минут и 14 секунд
ну да, достаточно LC_NUMMERIC было просто установить в "с" 
 BEGIN { $ENV{"LC_NUMERIC"}='C';};

Это сообщение отредактировал(а) myth777 - 23.12.2010, 15:30
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.