To proste zadanie. Biorąc pod uwagę dodatnią lub ujemną liczbę rzeczywistą, zaokrąglij ją do następnej liczby całkowitej bliższej zera.
Wyzwanie
Przyjmij dane wejściowe za pomocą dowolnej rozsądnej formy (standardowa, funkcja itp.) Jednej dodatniej lub ujemnej liczby rzeczywistej.
Zaokrąglaj tę liczbę „w kierunku zera” - oznacza to, że jeśli jest dodatnia, zaokrąglisz w dół, a jeśli jest ujemna, zaokrąglisz w górę.
Zwróć numer lub wyślij go do konsoli.
Przypadki testowe
1.1 => 1
-1.1 => -1
500.4 => 500
-283.5 => -283
50 => 50
-50 => -50
Zasady
To jest golf golfowy , więc najmniejszy wynik w bajtach wygrywa.
Pamiętaj o standardowych lukach .
Baw się dobrze! kolejne wyzwania Jimmy już wkrótce
code-golf
number
rational-numbers
podłącz ładowarkę
źródło
źródło
3.00
dla3.14
?0.01
i-0.01
powinien dać0
...Odpowiedzi:
Galaretka , 1 bajt
Pełny program (jako monadyczny link zwraca listę o długości jeden).
Wypróbuj online!
W jaki sposób?
źródło
Python 3 , 3 bajty
Wypróbuj online!
Obcina cyfry po przecinku.
UWAGA: To banalna odpowiedź. Proszę spojrzeć na inne odpowiedzi przed głosowaniem
źródło
Python 2 , 3 bajty
Wypróbuj online!
źródło
Perl 5
-p056l15
, 2 bajtyWypróbuj online!
Jak to działa?
Lub jeśli wolisz bardziej tradycyjną odpowiedź:
Perl 5 , 6 bajtów
Wypróbuj online!
źródło
\n
, to jest\r
.\n
byłoby l12. Jednak w TIO wygląda tak samo.-Minteger
-p
$_/=1
Labirynt i sześciokąt , 3 bajty
Dzięki FryAmTheEggman za zwrócenie uwagi, że napisałem trochę Sześciokąta!
Wypróbuj online!I wypróbuj online!
W jaki sposób?
Labirynt i Sześciokąty powiedzą ci tak wcześnie, jak to możliwe! ...
źródło
IO@
w Backhand działa w ten sam sposób, a&.@
w Befunge. Prawdopodobnie wiele języków z wprowadzaniem liczb całkowitych i tylko obsługa liczb całkowitych będzie taka samapieprzenie mózgu , 26 bajtów
Wypróbuj online!
Wyprowadza znak końcowy,
.
jeśli liczba była dziesiętnaNie ma zbyt wielu mądrych golfów, z wyjątkiem tego, że zamiast odejmować 46, aby sprawdzić, czy dana postać jest
.
, dodam 5 i mnożę przez 5, aby uzyskać 255, a następnie dodaj jeszcze jeden, aby przejść do zera. Odejmowanie 3, mnożenie przez 6 i odejmowanie 2 to ta sama liczba bajtówźródło
C (tcc),
392110 bajtówByłem właściwie zaskoczony, że nikt nie pomyślał o użyciu C.
To nie jest funkcja tożsamości, jak się wydaje. Niejawny typ int funkcji f obcina zmiennoprzecinkowy.
TIO
Mniejsze prawdopodobieństwo oszukiwania ludzi, ale ma krótszy bajt:
TIO
źródło
float
ponieważ używa to innego rejestru do wprowadzania wartości zmiennoprzecinkowych.J , 6 bajtów
Wypróbuj online!
Znak
*
razy*
zaokrąglić w dół<.
wartości bezwzględnej@|
źródło
Perl 6 , 4 bajty
Funkcja anonimowa.
Wypróbuj online!
źródło
Java (OpenJDK 8) ,
15 bajtów9 bajtówWypróbuj online!
dzięki @ kevin-cruijssen
źródło
(int)
. A tutaj 15-bajkowa alternatywa zabawy przy użyciu odwołania do metody. :)Excel, 10 bajtów
TRUNC
obcina liczbę do liczby całkowitej, usuwając ułamkową część liczby.źródło
R,
135 bytesThanks Robin Ryder
Try it online!
źródło
Retina 0.8.2, 5 bytes
Try it online! Link includes test cases.
źródło
Ruby, 11 bytes
I picked this one because it distinguishes itself from the lambdas that us Ruby golfers typically use (thankfully, it had the same bytecount as the "traditional" solution):
Try it online!
źródło
ReRegex, 12 bytes
Try it online!
ReRegex is a programming language which matches and replaces over and over until there are no matches.
źródło
JavaScript, 6 bytes
Try it online!
JavaScript, 8 bytes
Using built in is 2 bytes longer...
Try it online!
źródło
x=>~~x
? Still 6 bytes though.K (oK), 3 bytes
Try it online!
źródło
Intel 8087 FPU machine code, 14 bytes
Input is single precision value in a memory location
A
(aDD
), output is integer value at memory locationB
(aDW
).The 8087 must first be put into round towards zero mode by setting the control word (
0F7FH
). Then load the floating point value and store back to an integer.źródło
Red, 4 bytes
Try it online!
Just converts the float to an integer (conversion by prototype)
źródło
Zsh, 10 bytes
xor
with 0. I came across this during another challenge recently. Try it online!Does not work in Bash or POSIX sh (dash).
źródło
V (vim), 4 bytes
Try it online!
Thanks @DJMcMayhem, 1 byte saved.
źródło
Keg,
191713 bytesThis outputs some trailing unprintable characters. Also, this exits with an error. (Now we need reversed input!)
źródło
Whitespace (with vii5ard compiler),
1817 bytesLetters
S
(space),T
(tab), andN
(new-line) added as highlighting only.[..._some_action]
added as explanation only.Try it online. You'll have to copy-paste the code yourself (note that SE converts the tabs to a bunch of spaces!) in order to run the code at the online Whitespace-compiler vii5ard. When clicking run, it will ask for an input (i.e.
-285.5
), and after clicking enter it will continue and output-283
.Explanation in pseudo-code:
Whitespace can only use I/O as integers or single characters, so in this case it would read the input as integer and ignore any other trailing characters. I.e.
-283.5
or-283abc5
would both be input (and thus output) as-283
.Unfortunately this above doesn't work on TIO for two reasons (all Whitespace compilers are slightly different..):
no parse
error when we try to read an input as integer, which isn't an a valid integer. So, instead we'll read one character at a time, and stop (with an error) as soon as we've encountered the.
or there is no more input (i.e.50
/-50
).SSN
, whereas on TIO it requires an additionalS
orT
:SSSN
/SSTN
. The firstS
is Enable Stack Manipulation; the secondS
is Push what follows as integer; the thirdS
/T
is positive/negative respectively; and anyS
/T
after that (followed by anN
) is the number we want to push in binary, whereS=0
andT=1
. For integer 0 this binary part doesn't matter, since it's 0 by default. But on TIO we'd still have to specify the positive/negative, and with most other Whitespace compilers like vii5ard not.Whitespace (with TIO compiler), 48 bytes
Letters
S
(space),T
(tab), andN
(new-line) added as highlighting only.[..._some_action]
added as explanation only.Try it online (with raw spaces, tabs and new-lines only).
Explanation in pseudo-code:
źródło
Pip, 5 bytes
Try it online!
źródło
C# (Visual C# Interactive Compiler), 9 bytes
Try it online!
źródło
Scala, 7 bytes
Try it online!
źródło
x=>x-x%1
.Double=>Double
in this case.05AB1E, 1 byte
In the legacy version (which is written in Python), the cast to integer builtin works as expected to truncate the decimal values.
Try it online.
In the new version of 05AB1E (written in Elixir) it only works on strings (even though integers/decimals/strings should all be interchangeable, unless sorting lexicographical vs numeric for example). Guess I can report a bug to @Adnan..
Try it online to compare integer/decimal input (giving incorrect result) vs string inputs (giving correct results).
źródło
ï
works just fine on non-legacy 05AB1E. It's array input that works in a weird way.Aheui (esotope), 9 bytes
Try it online!
Basic idea from that of triangular answer (or any other languages takes numeric input as integer).
Fun fact.
방망희
(pronouncedbang-mang-heui
(a
ofark
)) sounds almost same as방망이
(pronouncedbang-mang-i
(a
ofark
,i
sounds likeE
), which means bat.How does it works?
방
takes number as integer.망
prints value as number.희
terminates program.źródło
PowerShell, 19 bytes
Try it online!
PowerShell by default does bankers' rounding, which is pretty much the opposite of how many other languages do rounding. So, traditionally we'd use
[Math]::Truncate()
to strip the decimal point and any decimal part and achieve the "to zero" rounding we're interested in here. However, that's a bit long, so using this tip, we can round-toward-zero by implicitly casting the input to a string, performing a regex-replace
to get rid of the period and anything after it, and leaving the output on the pipeline for implicit printing.źródło
Triangular, 3 bytes
Try it online!
Triangular takes numeric input as an integer; any decimal values are truncated. If it's acceptable to just leave the input on the stack without printing it, then this solution can instead be:
Triangular, 1 byte
Try it online!
źródło