Почему не делает **, вид ** сортирует то же на каждой машине?

Отправляйте одно из целых чисел / оба целого числа для плавания, чтобы заставить операцию выполнить с помощью математики с плавающей запятой. Иначе целочисленная математика всегда предпочтительна. Итак:

1. v = (float)s / t;
2. v = (float)s / (float)t;
12
задан Jon Ericson 16 September 2008 в 00:07
поделиться

4 ответа

В странице справочника на OS X говорится:

******* ПРЕДУПРЕЖДЕНИЕ ******* локаль, указанная средой, влияет на порядок сортировки. LC_ALL=C набора для получения традиционного порядка сортировки, который использует собственные значения байта.

который мог бы объяснить вещи.

Если бы некоторые Ваши системы не имеют никакой поддержки локали, они приняли бы значение по умолчанию к той локали (C), таким образом, Вы не должны были бы устанавливать ее на тех. Если у Вас есть некоторые, который поддерживает локали, и хотят то же поведение, устанавливают LC_ALL=C в тех системах. Это было бы способом иметь столько систем, сколько я знаю, делают это тот же путь.

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

Дополнительные сведения см. в Единственный UNIX ® Спецификация, описание Версии 2 локали, переменных среды, setlocale () и описание вида (1) утилита.

20
ответ дан 2 December 2019 в 05:29
поделиться

Это может быть результатом различий в локали:

$ echo 'CO2_
CO_' | env LC_ALL=C sort
CO2_
CO_


$ echo 'CO2_
CO_' | env LC_ALL=en_US sort
CO_
CO2_

Установка переменной среды LC_ALL к тому же значению должна исправить проблему.

3
ответ дан 2 December 2019 в 05:29
поделиться

Это происходит, вероятно, из-за различных настроек переменных среды локали. sort будет использовать эти настройки, чтобы определить, как сравнить строки. Путем установки этих переменных среды путем Вы хотите перед вызовом sort, необходимо смочь вынудить это вести себя в одном особенном методе.

3
ответ дан 2 December 2019 в 05:29
поделиться

Для больше, чем Вы когда-либо хотели знать о sort, считайте спецификацию sort в Единственной Спецификации v3 Unix. Это указывает

Сравнения [...] должны быть выполнены с помощью сортирующей последовательности текущей локали.

IOW, как sort виды зависят от локали (язык) настройки среды, под которой работает сценарий.

2
ответ дан 2 December 2019 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: