Курс языка программирования Raku / Основы / Числа
Рациональные числа
Рациональные числа — это уникальная особенность Raku. Такие числа представлены
типом данных Rat
.
Внутри Raku рациональные числа являются дробями с двумя целыми частями: числитель и знаменатель. Поэтому вы можете с легкость представить такие числа, как 1/3, без потери точности.
Есть несколько способов записи числа Rat
в программе Raku:
my $x = 1/2;
my $y = <2/3>;
Отметим, что косая черта здесь является частью нотации. Это не оператор деления,
поэтому 1/2
не означает деление 1 на 2. Хотя при печати рациональные числа
показаны как десятичные числа или целые:
say 1/2; # 0.5
say 3/4; # 0.75
Часть строки после знака #
является комментарием, который игнорируется
компилятором. Такие комментарии будут использованы в этом курсе, чтобы показать
вывод программы.
Десятичная форма
Важно понимать, что когда вы записываете число в десятичной форме, например
0.5
, Raku создает число типа Rat
. Это не целое число, но и не число с
плавающей точкой (float
или double
в других языках). Это все еще
рациональное число!
Давайте посмотрим на следующий пример:
say 0.1 + 0.2 - 0.3;
Если язык программирования использует арифметику с плавающей точкой для таких вычислений, результат не будет равен 0. На сайте 0.30000000000000004.com приведен исчерпывающий список примеров, когда арифметика с плавающей точкой не дает ожидаемый результат.
Но Raku выведет ровно 0
. Так получается, потому что числа 0.1
, 0.2
и 0.3
являются рациональными числами, и Raku хранит их внутри как 1/10
, 2/10
и
3/10
. Запустите следующее из командной строки, чтобы удостовериться в этом:
$ raku -e 'say 0.1 + 0.2 - 0.3'
0
Символы Юникода
В качестве дробей также возможно использовать символы Юникода, такие как ½
,
¼
или ¾
. Наверное, такие дроби не всегда легко набрать с клавиатуры, но они
полностью соответствуют своим ASCII альтернативам, записанным как дробь или как
десятичное число:
½ |
1/2 |
<1/2> |
0.5 |
¼ |
1/4 |
<1/4> |
0.25 |
¾ |
3/4 |
<3/4> |
0.75 |
С некоторыми дробями, как например 1/3
, у вас меньше опций, только ⅓
или
<1/3>
, так как десятичная форма бы требовала бесконечное количество цифр.
Навигация по курсу
← Числа / Целые числа | Числа / Числа с плавающей точкой →
💪 Or jump directly to the exercises to this section.
Эта страница переведена с английского человеком. Оригинальный текст на английском языке. О переводе.
Переводы этой страницы: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська