Как я должен сделать целочисленное деление в Perl?

Вот функция расширения для разделения с разделителем строк:

public static string[] Split(this string value, string seperator)
{
    return value.Split(new string[] { seperator }, StringSplitOptions.None);
}

Пример использования:

string mystring = "one[split on me]two[split on me]three[split on me]four";
var splitStrings = mystring.Split("[split on me]");
57
задан GEOCHET 12 February 2009 в 02:54
поделиться

3 ответа

Можно бросить ints в Perl:

int(5/1.5) = 3;
44
ответ дан Peter Mortensen 7 November 2019 в 15:55
поделиться

Лексически ограниченный по объему integer прагма Perl сил для использования целочисленной арифметики в ее объеме:

print 3.0/2.1 . "\n";    # => 1.42857142857143
{
  use integer;
  print 3.0/2.1 . "\n";  # => 1
}
print 3.0/2.1 . "\n";    # => 1.42857142857143
83
ответ дан Michael Ratanapintha 7 November 2019 в 15:55
поделиться

int (x + .5) округляет положительные значения до ближайшего целого числа. Округление в большую сторону сложнее.

Чтобы округлить до нуля:

int ($ x)

Для решений ниже добавьте следующий оператор:

использовать POSIX;

Чтобы округлить в меньшую сторону: POSIX :: floor ($ x)

Для округления: POSIX :: ceil ($ x)

Для округления от нуля: POSIX :: floor ($ x) - int ($ x) + POSIX :: ceil ($ x)

Чтобы округлить до ближайшего целого: POSIX :: floor ($ x + .5)

Обратите внимание, что int ($ x + .5) плохо работает для отрицательных значений. int (-2,1 + .5) равно int (-1,6) , что равно -1.

5
ответ дан 24 November 2019 в 19:26
поделиться
Другие вопросы по тегам:

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