Zaokrąglić od zera
Inspirowany Roundem w kierunku zera .
Biorąc pod uwagę liczbę wprowadzoną dowolną rozsądną metodą, zaokrąglij liczbę „od zera” - liczby dodatnie zaokrąglają w górę, a liczby ujemne zaokrąglają w dół.
Jeśli zamierzasz traktować dane wejściowe jako ciąg znaków (na przykład przez STDIN), powinieneś być w stanie obsługiwać liczby z przecinkiem dziesiętnym lub bez niego. Jeśli weźmiesz go jako liczbę, powinna przynajmniej być w stanie obsłużyć precyzję zmiennoprzecinkową (podwójna precyzja nie jest wymagana) lub liczby wymierne.
W razie potrzeby możesz wypisać liczbę zmiennoprzecinkową z przecinkiem dziesiętnym (np. 42,0). (Lub nawet mieć niektóre przypadki testowe wyjściowe zmiennoprzecinkowe i niektóre wyjściowe liczby całkowite, jeśli to skraca twoją odpowiedź.)
Standardowe luki nie są dozwolone itp.
Przypadki testowe
-99.9 => -100
-33.5 => -34
-7 => -7
-1.1 => -2
0 => 0
2.3 => 3
8 => 8
99.9 => 100
42.0 => 42
-39.0 => -39
.0
jak sugerują przypadki testowe?-0.1
i0.1
Odpowiedzi:
Excel, 13 bajtów
Alternatywny
źródło
EVEN
, co za dziwna funkcja ..R, 32 bajty
źródło
Galaretka , 4 bajty
Monadyczny link akceptujący liczbę, która daje liczbę całkowitą.
Wypróbuj online! Lub zobacz zestaw testowy .
W jaki sposób?
źródło
¡
działa liczba ujemna? Nie sądzę, żeby zostało to udokumentowane¡
powtarzalna natura jest zaimplementowana zfor index in range(repetitions)
pętlą w kodzie.range([stop=]-1)
jest pusty, ponieważstart
domyślnie0
istep
domyślnie1
oraz „W przypadku kroku dodatniego zawartość zakresur
jest określana przez formułęr[i] = start + step*i
gdziei >= 0
ir[i] < stop
”. docs¡
zachowanie zależy od zachowania Pythonarange
irange(-1).__iter__().__next__()
natychmiast rzucaStopIteration
.Python 3 , 23 bajty
Wypróbuj online!
-1 bajt dzięki xnor
źródło
(1|-(i>0))
aby zaoszczędzić bajt(1,-1)[i>0]
.g=lambda r:0if r==0 else(int(r)+r/abs(r)if r/int(r)!=1 else r)
Galaretka ,
54 bajtówWypróbuj online!
Ten port rekursywnej odpowiedzi Stax na galaretkę, więc sprawdź tę odpowiedź dla wyjaśnienia.
-1 bajt dzięki Nickowi Kennedy'emu
Galaretka ,
65 bajtówWypróbuj online!
-1 bajt dzięki Jonathan Allan
Jak to działa?
źródło
ĊḞ>?0
działałby tak jak twoja 6.AĊ×Ṡ
ma 4 i jest funkcjonalnie identyczny z pierwszą odpowiedzią.Java (JDK) , 18 bajtów
Wypróbuj online!
Objaśnienia
Wykorzystuje
BigDecimal
jako wejście i wyjście.BigDecimal
ma metodęsetScale
określającą skalę liczby. Pierwszy parametr to liczba cyfr po separatorze kropek, drugi to tryb zaokrąglania.ROUND_UP
jest zaokrągleniem „od zera” i ma wartość,0
więc ustalam na stałe tę wartość.źródło
Vim, 36 bajtów / naciśnięć klawiszy
Wypróbuj online! lub Zweryfikuj wszystkie przypadki testowe!
Wyjaśnienie:
źródło
$F-a <esc>
zamiast pierwszego wiersza i makra/
jako warunkowe zamiast:g
i:norm
daje 29 bajtów tio.runJ , 6 bajtów
Wypróbuj online!
Tylko jedna zmiana postaci od mojej odpowiedzi na pytanie kuzyna .
źródło
C # (kompilator Visual C #) ,
41 bajtów27 bajtów24 bajtyWypróbuj online!
Pierwszy post tutaj, dobrze się bawiłem, mam nadzieję, że ci się spodoba. Trochę czułem, że C # miejsce jest tutaj puste
-14 tnx na @expired data
-3 tnx na @ night2
źródło
Code golf submission
funkcji, dodałem tylko trochę moich własnych słów na końcu, ale do edycji właśnie zmieniłem ten wiersz kodu, a tam właśnie, zapomniałem zaktualizuj link, który prowadzi nas z powrotem do pierwszego kroku, aby zmodyfikować tylko raz, wRuniczne Zaklęcia ,
1816 bajtówWypróbuj online!
„Dodaje” (od zera) 0,999999 i podaje wynik poniżej.
µ
jest najbliższą nieskończoności operatorom języka. Przy prawidłowo działającymTrunc(x)
poleceniu odpowiedź obsługuje teraz0
jako dane wejściowe.źródło
divide by input
aby uzyskać „znak” wartości wejściowej, która oczywiście dzieli się przez 0, gdy wartość wejściowa wynosi 0. W tej chwili nie ma (dobrego) sposobu na obejście tego. Najpierw będzie potrzebne to zatwierdzenie . Szturchnę Dennisa (korzyść dodatkowa, odpowiedź będzie krótsza).0
poprawnie.Stax , 6 bajtów
Uruchom i debuguj
Procedura:
źródło
C,
944339 bajtówdzięki pułapowi cat za 39 bajtów
TIO
źródło
Retina 0.8.2 , 38 bajtów
Wypróbuj online! Link zawiera przypadki testowe. Wyjaśnienie:
Usuń zera po przecinku, aby upewnić się, że liczba nie jest liczbą całkowitą; następne dwa dopasowania kończą się niepowodzeniem, jeśli po przecinku nie ma cyfr.
Jeśli częścią całkowitą są wszystkie
9
s, przedrostek a0
pozwala przepełnić przyrost.Zwiększ część całkowitą liczby.
Usuń ułamkową część liczby.
źródło
05AB1E , 6 bajtów
5-bajtowy zdecydowanie powinien być możliwy.
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
JavaScript (ES6), 20 bajtów
Wypróbuj online!
Skomentował
źródło
n=>(~~n-n%1)%1+n
), dopóki nie dowiedziałem się, że mój kod nie działa na liczbach od -1 do 1. Być może będziesz w stanie dowiedzieć się, jak sprawić, by działał z 3 ostatnimi bajtami lewo!Perl 6 , 18 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
MathGolf , 5 bajtów
Wypróbuj online!
Wyjaśnienie
Miło jest znaleźć zastosowanie dla
‼
operatora.źródło
PHP , 30 bajtów
Wypróbuj online!
Jeśli liczba nie jest liczbą całkowitą, do niej dodaje się znak -1 (dla liczb dziesiętnych ujemnych) lub 1 (dla liczb dziesiętnych dodatnich), a następnie drukowana jest część całkowita nowej liczby.
PHP , 32 bajty
Wypróbuj online!
Zasadniczo wyjścia
floor
danych wejściowych, jeśli jest mniejsza niż 0,ceil
w przeciwnym razie.PHP , 34 bajty
Wypróbuj online!
źródło
Brachylog , 7 bajtów
Wypróbuj online!
lub
⌉₁ℕ₁|⌋₁
.źródło
Wolfram Language (Mathematica) , 18 bajtów
Wypróbuj online!
źródło
Współczynnik , 57 bajtów
Wypróbuj online!
źródło
APL (Dyalog Unicode) , 15 bajtów
Wypróbuj online!
Prosty Dfn. Używa
⎕IO←0
.W jaki sposób:
źródło
sed, 131 bajtów + 2 bajty na
-r
flagęBez golfa
źródło
Perl 5
-pF/\./
, 35 bajtówWypróbuj online!
źródło
3.0
. W przypadku przełączników-pF\.
wystarczy://
są opcjonalne.0.0
jest prawdąJavaScript (node.js),
302321 bajtówInspirowany odpowiedzią C #.
Dzięki @Value Ink i @Gust van de Wal za -7 bajtów!
Jeszcze raz dziękuję, @ust van de Wal za kolejne -2 bajty!
źródło
+=
kiedy+
zrobi lewę w tym przypadku? -1 bajtparseInt()
prostu użyję~~
na początku lub innego operatora bitowego, takiego jak|0
lub^0
na końcu, aby zaoszczędzić kolejny kawałek bajtów+=
, dziękuję za wskazaniePerl 6 , 19 bajtów
Wypróbuj online!
Nie najkrótsze rozwiązanie, ale pracuję nad tym. Zasadniczo powoduje to obcięcie liczby, a następnie dodaje jeden od zera, jeśli liczba nie była całkowita na początek
źródło
Java (OpenJDK 8) , 43 bajty
Wypróbuj online!
źródło
return
instrukcji.(int)a/a<1
doa%1!=0
: 30 bajtówBigDecimal.setScale
metoda, która daje doskonałe wyniki, jak pokazuje moja odpowiedźJapt , 6 bajtów
Wypróbuj tutaj
źródło
Czerwony , 46 bajtów
Wypróbuj online!
Nieco bardziej czytelna wersja jest dłuższa o 2 bajty (te długie nazwy funkcji!):
źródło
Scala , 16 bajtów
Wypróbuj online!
Scala , 22 bajty
Wypróbuj online!
źródło