Hodnoty typu float!
jsou 64-bitové pozitivní nebo negativní čísla, která obsahují desetinnou čárku.
Mají rozsah od -1.7E+308
do +1.7E+308
a při přetečení vracejí #INF
.
Dělení nulou vrací 1.#NaN
Typ float!
je členem typesetů: immediate!
, scalar!
a number!
.
Hodnoty float! lze vytvořit literálovou syntaxí nebo při runtime použitím konstruktoru make
nebo konverzí to
.
Žádná nebo více číslic, následovaných tečkou, následovanou jednou nebo více číslicemi. Místo tečky lze použít čárku:
123,4
Poznámka
|
Vytvářená hodnota normalizuje desetinnou čárku na desetinnou tečku coby označení desetinného čísla. |
Znak +
nebo -
bezprostředně před první číslicí označuje pozitivní nebo negativní hodnotu typu float!
.
+123.4
-123.4
Předcházející nuly jsou ignorovány.
>> +00123.4
== 123.4
Jednoduchý apostrof '
se používá jako místní oddělovač hodnot u dlouhých čísel a může se použít kdekoli po první číslici.
>> 60'000'123.4
== 60000123.4
Jednoduchý apostrof '
bezprostředně před nabo za desetinnou tečkou vyvolá chybové hlášení.
>> 60'000'123'.4
*** Syntax Error: invalid integer! at "60'000'123'.4"
*** Where: do
*** Stack: load
-
Literálová syntaxe
>> 100.1 == 100.1
-
Konstruktor
make
>> make float! 1 == 1.0
-
Transformace
to
>> to float! 42 == 42.0
Poznámka
|
Hodnota typu any-list! , zadávaná do funkce make či to , musí obsahovat dvě čísla. Výsledkem bude first-number * (10 ** second-number) .
|
-
block
>> make float! [2 3] == 2000.0 >> to float! [4 2] == 400.0
-
paren
>> make float! quote (2 3) == 2000.0 >> to float! quote (4 2) == 400.0
-
hash
>> list: make hash! [2 3] == make hash! [2 3] >> to float! list == 2000.0 >> list: make hash! [4 2] == make hash! [4 2] >> to float! list == 400.0
Pro hodnotu typu float!
lze použít všechny komparátory: =, ==, <>, >, <, >=, <=, =?
. Navíc jsou podporovány funkce min
a max
.
Hodnotu float
lze při runtime konvertovat na any-list!
, binary!
, char!
, integer!
, string!
nebo time!
s použitím konverze to
.
Hodnota typu any-list
musí obsahovat dvě čísla. Výsledkem bude first-number * (10 ** second-number)
.
>> to float! [4 2] ; 4 * (power 10 2)
== 400.0
-
to binary!
interpretuje prvních 8 bajtů jako desetinné číslo (floating point number). Je-li k dispozici méně než 8 bajtů, jsou předsazeny bajty #{00}.>> to binary! 42.3 == #{4045266666666666}
-
Při konverzi na
char!
nebointeger!
jsou číslice za desetinnou čárkou ignorovány. Zaokrouhlení se neprovádí.>> to char! 123.4 == #"{" >> to char! 123 ; equivalent, since .4 is discarded == #"{" >> to integer! 123.4 == 123
-
to string!
>> to string! 123.4 == "123.4"
-
to time!
vrací počet sekund a milisekund>> to time! 42.7 == 0:00:42.7
Jsou-li ve výrazu kombinovány typy float!
a integer!
, je výsledek typu float!
.
>> 123.4 * 42
== 5182.8
K ověření, zda hodnota je typu float!
použijeme funkci float?
.
>> float? 123.4
== true
Funkce type?
vrací datový typ zadané hodnoty.
>> type? 123.4
== float!