Курс по 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. Оригинален текст на английски

Преводи на тази страница: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська