Zaokrouhlování čísel
Popis
ceiling vezme jeden číselný argument x a vrátí číselný vektor obsahující nejmenší integery ne menší než korespondující elementy x .
floor vezme jeden číselný argument x a vrátí číselný vektor obsahující největší integery ne větší než korespondující elementy x .
trunc vezme jeden číselný argument x a vrátí číselný vektor obsahující integery vzniklé skrácením hodnot v x k 0 (bez zaokrouhlení).
round zaokrouhlí hodnoty prvního výrazu na určitý počet desetinných míst (předvolené 0).
signif zaokrouhlí hodnoty prvního výrazu na určitý počet signifikantních číslic.
Použití
ceiling(x)
floor(x)
trunc(x, ...)
round(x, digits = 0)
signif(x, digits = 6)
Argumenty
x |
číselný vektor. Anebo, pro round a signif , komplexní vektor.
|
digits |
integer indikující počet desetinných míst
(round ) nebo signifikantních číslic (signif ), které se mají použít.
Záporné hodnoty jsou povoleny (viz ‘Detaily’).
|
... |
argumenty, které se předají metodám.
|
Detaily
Tyto jsou generické funkce: methody pro ně můžou být definovány individuálně nebo přes Math skupinové
generika.
Všimněte si, že pro zaokrouhlení 5 se očekává použití IEC 60559 standardu - ‘jeď k párnému číslu’.
Proto round(0.5) je 0 a round(-1.5) je
-2 . Ovšem, tohle závisí na službách operačního systému a na reprezentační chybě (protože např. 0.15 není reprezentováno přesně, zaokrouhlovací pravidlo se vztahuje k reprezentovanému číslu, ne k vytisknutému číslu, takže round(0.15, 1) může být buď
0.1 anebo 0.2 ).
Zaokrouhlování k zápornému počtu číslic znamená zaokrouhlování k mocnině 10, takže například round(x, digits = -2) zaokrouhlí k nejbližší stovce.
Pro signif jsou rozeznávány hodnoty číslic
1...22 , a nechybějící hodnoty jsou zaokrouhleny k nejbližšímu integeru v daném rozsahu. Komplexní čísla jsou zaokrouhleny tak, aby byl zachován specifický počet číslic ve větší komponentě. Každý element vektoru je zaokrouhlený individuálně, na rozdíl od tisku.
Tyto jsou všechny primitivní funkce.
S4 metody
Tyto jsou všechny (interně) S4 generika.
ceiling , floor a trunc jsou členové Math skupinových generik. Jako S4
generikum, trunc má jenom jeden argument.
round a signif jsou členové Math2 skupinových generik.
Varování
Skutečnosti počítačové aritmetiky můžou způsobit nečekané výsledky, zejména u floor a ceiling . Například, "víme", že floor(log(x, base = 8)) pro x = 8 je 1 , ale 0 byla viděna na R platformě. Normálně je nutné použít toleranci.
Viz také
as.integer
Examples
round(.5 + -2:4) # IEEE zaokrouhlování: -2 0 0 2 2 4 4
( x1 <- seq(-2, 4, by = .5) )
round(x1) #-- IEEE zaokrouhlování !
x1[trunc(x1) != floor(x1)]
x1[round(x1) != floor(x1 + .5)]
(non.int <- ceiling(x1) != floor(x1))
x2 <- pi * 100^(-1:3)
round(x2, 3)
signif(x2, 3)
|