Курс по Raku / Основи / Числа
Рационални числа
Рационалните числа са уникална характеристика на Raku. Типът данни Rat
представлява такива числа.
Вътрешно, рационалните числа са дроби с две цели части: числител и знаменател. Така че, можете лесно да представите числа като 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
като рационални числа и ги съхранява като 1/10
, 2/10
и 3/10
вътрешно. Стартирайте го от командния ред, за да го потвърдите:
$ raku -e 'say 0.1 + 0.2 - 0.3'
0
Unicode форми
Възможно е също така да използвате Unicode символи, които представляват дробите, като ½
или ¼
или ¾
. Вероятно не винаги е лесно да ги въведете с клавиатурата, но тези дроби са точно същите стойности като техните 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.
Тази страница е автоматично преведена с ChatGPT 4.0. Оригинален текст на английски
Преводи на тази страница: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська