Bug 24170

Summary: Неправильная работа с float в русской локали
Product: Sisyphus Reporter: Fr. Br. George <george>
Component: basic256Assignee: Andrey Cherepanov <cas>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: black, cas, webmaster
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Грязный хак, перебивающий LC_NUMERIC none

Description Fr. Br. George 2010-09-28 13:40:39 MSD
Created attachment 4569 [details]
Грязный хак, перебивающий LC_NUMERIC

В программе повсеместно используется как locale-=незаисимое представление float (в виде чисел с точкой), так и locale-зависимое (в русской локали это числа с запятой), в результате print 1.1 дяёт 1

Самый простой способ -- насильственно перебить локаль LC_NUMERIC (это соответствует стандарту BASIC). Пока что единственный вариант -- отловить использование локалезависимыхфункций типа atof() и перебить.
Comment 1 Fr. Br. George 2010-11-06 19:39:12 MSK
Ping
Comment 2 Vladimir Cherny 2010-11-07 10:48:19 MSK
Мейнстрим исправил, поскольку немцы со своей локалью тоже нарвались на эту ошибку. Посмотрим исправил ли наш мантейнер...
Comment 3 Сергей Ирюпин 2010-12-14 21:41:25 MSK
(В ответ на комментарий №2)
> Мейнстрим исправил, поскольку немцы со своей локалью тоже нарвались на эту
> ошибку. Посмотрим исправил ли наш мантейнер...
Майнтейнер исправил.
Comment 4 Andrey Cherepanov 2017-05-31 12:39:58 MSK
Исправлено.