Проблемы разделителей целой и дробной частей числа


#1

Приветствую!

Я не знаю почему не возникало ранее этого вопроса, или я чего то не понимаю?

В движке сайта почему то используется разделителем целой и дробной части числа (цена) . (точка)

Хотя: В англоязычных странах (кроме ЮАР), в Китае и бывших британских колониях в качестве десятичного разделителя используется точка ., в большинстве остальных стран, а именно Украина, Россия и др. страны где используют в основном CS-CART— запятая ,.

Возникают некоторые проблемы. Опишу подробнее.

Необходимо спомощью импорт-экспорта добавить для всего товара “вес” в кг
Эксель точку и запятую по-раному интерпретирует (и да экспорт товара из 1С дробные числа идут с запятой). Я подготовил таблицу со своими данными, вес с запятой.
При попытке импортировать csv и поставив значение “,” запятой при Товары (старый импорт)


я получаю отсечение дробной части, в итоге половину товара вес=0
т.е. значение разделитель ЦЕНЫ - поле веса не воспринимает?

При попытке в экселе заменить все запятые в MS EXCEL (ячейка формата числовой или даже текстовый) на точки приводит к замене некоторых чисел на дату

Я попробовал сделать такой же фокус с заменой в LibreOffice результат тоже не радует, у него какой то пунктик на число 1,2 или 2,4 - он ее преобразовывает в число 44228


Хорошо в данном, частном случае я поборол, заменив запятую в готовом csv файле в обычном блокноте, и запятая в данном файле нигде кроме веса не фигурировала. И потом все корректно импортировалось.

Согласитесь это же не нормальные танцы с бубном?
Может есть добавить возможность в глобальных настройках изначально давать возможность выбирать разделитель дробной части?

Или я все же где-то недосмотрел и все это есть?


#2

В Excel нужно у столбика изменить Формат ячеек с Общий на Текст. И тогда не будут числа превращаться в даты.

Разделитель точка, потому что в базе данных MySQL, на которой работает CS-Cart, разделитель дробной части это точка, а не запятая. И в БД числа нужно загружать с точкой. Чтобы загружались числа с запятой, необходимо, чтобы в CS-Cart был обработчик, который запятые будет в точки превращать. Его сделали для цены, но не сделали для других чисел.

Можете это оформить как пожелание на будущее. Но особо нет проблемы привести файл к нужному виду.


#3

Вот именно, когда формат ячейки “текст”, в дату и превращается.


#4

Проверил. Действительно меняет :face_with_hand_over_mouth:. Если в целом на операционке в региональных настройках указать, что разделитель в числе точка, а в дате слэши, то не меняет число на дату. Так что, как вариант - менять временно региональные настройки перед заменой запятой на точки.

Более правильное решение, которое не будет зависеть от региональных настроек, использовать формулы:

=ЗАМЕНИТЬ(A1;НАЙТИ(",";A1);1;".")

#5

вот это я и называю танцы с бубном)

Логичнее в движке такую настройку иметь, но это решают разрабы. Как им удобнее или проще.


#6

Оформите свои пожелания отдельной темой “Сделайте настройку дробного разделителя при импорте для всех чисел” в разделе “Как улучшить CS-Cart”. Опишите проблему еще раз. В конце текста развернуто сформулируйте предложение. Прикрутите в конце опрос, чтобы другие голосовали. Я так делаю:

Если ваше предложение наберет много откликов, то разработчики возьмут его в работу. Такое было уже не раз.

Мне видится, что это несложная доработка и ее вполне могут поставить в план работ.