C'est une tâche simple. Étant donné un nombre réel positif ou négatif, arrondissez-le au prochain entier proche de zéro.
Le défi
Prenez la saisie sous toute forme raisonnable (stdin, fonction, etc.) d'un nombre réel positif ou négatif.
Arrondissez ce nombre "vers zéro" - cela signifie que s'il est positif, vous arrondirez vers le bas, et s'il est négatif, vous arrondirez vers le haut.
Renvoyez le numéro ou envoyez-le à la console.
Cas de test
1.1 => 1
-1.1 => -1
500.4 => 500
-283.5 => -283
50 => 50
-50 => -50
Règles
Il s'agit de code-golf , donc le plus petit score en octets l'emporte.
Soyez conscient des échappatoires standard .
S'amuser! d'autres défis Jimmy à venir
code-golf
number
rational-numbers
Branchez votre chargeur
la source
la source
3.00
pour3.14
?0.01
et-0.01
devrait céder0
...Réponses:
Gelée , 1 octet
Un programme complet (en tant que lien monadique, il renvoie une liste de longueur un).
Essayez-le en ligne!
Comment?
la source
Python 3 , 3 octets
Essayez-le en ligne!
Tronque les chiffres après la virgule décimale.
REMARQUE: il s'agit d'une réponse triviale. Veuillez consulter les autres réponses avant de voter
la source
Python 2 , 3 octets
Essayez-le en ligne!
la source
Perl 5
-p056l15
, 2 octetsEssayez-le en ligne!
Comment ça marche?
Ou si vous préférez une réponse plus traditionnelle:
Perl 5 , 6 octets
Essayez-le en ligne!
la source
\n
, c'est\r
.\n
serait l12. Il en va de même pour TIO.-Minteger
-p
$_/=1
Labyrinthe et hexagone , 3 octets
Merci à FryAmTheEggman d'avoir souligné que j'avais écrit de l'hexagonie!
Essayez-le en ligne! & Essayez-le en ligne!
Comment?
Labyrinth et Hexagony vous le diront tous les deux le plus tôt possible! ...
la source
IO@
dans Backhand fonctionne de la même manière, et&.@
dans Befunge. Probablement beaucoup de langues avec entrée entière, et seule la gestion des entiers sera la mêmebrainfuck , 26 octets
Essayez-le en ligne!
Sorties avec une fin
.
si le nombre était décimalIl n'y a pas beaucoup de golf spéculaire, sauf qu'au lieu de soustraire 46 pour vérifier si un personnage est un
.
, j'ajoute 5 et je multiplie par 5 pour obtenir 255, puis j'en ajoute un de plus pour passer à zéro. Soustraire 3, multiplier par 6 et soustraire 2 équivaut au même nombrela source
C (tcc),
392110 octetsJ'étais en fait assez surpris que personne n'ait pensé à utiliser C.
Ce n'est pas une fonction identitaire comme cela semble l'être. Le type int implicite de la fonction f ponctue le point flottant.
TIO
Moins susceptible de tromper les gens mais a une longueur d'octet plus courte:
TIO
la source
float
car cela utilise un registre différent pour l'entrée des valeurs à virgule flottante.J , 6 octets
Essayez-le en ligne!
Signe
*
multiplié par*
l'arrondi<.
de la valeur absolue@|
la source
Perl 6 , 4 octets
Fonction anonyme.
Essayez-le en ligne!
la source
Java (OpenJDK 8) ,
15 octets9 octetsEssayez-le en ligne!
merci à @ kevin-cruijssen
la source
(int)
. Et voici une alternative amusante de 15 octets utilisant une référence de méthode. :)Excel, 10 octets
TRUNC
tronque un nombre en un entier en supprimant la partie fractionnaire du nombre.la source
R ,
135 octetsMerci Robin Ryder
Essayez-le en ligne!
la source
Retina 0.8.2 , 5 octets
Essayez-le en ligne! Le lien inclut des cas de test.
la source
Ruby , 11 octets
J'ai choisi celui-ci car il se distingue des lambdas que nous, les golfeurs Ruby, utilisons généralement (heureusement, il avait le même nombre de bytec que la solution "traditionnelle"):
Essayez-le en ligne!
la source
ReRegex , 12 octets
Essayez-le en ligne!
ReRegex est un langage de programmation qui correspond et remplace encore et encore jusqu'à ce qu'il n'y ait aucune correspondance.
la source
JavaScript, 6 octets
Essayez-le en ligne!
JavaScript, 8 bytes
L'utilisation de intégré est de 2 octets de plus ...
Essayez-le en ligne!
la source
x=>~~x
? Still 6 bytes though.K (oK), 3 bytes
Try it online!
la source
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.la source
Red, 4 bytes
Try it online!
Just converts the float to an integer (conversion by prototype)
la source
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).
la source
V (vim), 4 bytes
Try it online!
Thanks @DJMcMayhem, 1 byte saved.
la source
Keg,
191713 bytesThis outputs some trailing unprintable characters. Also, this exits with an error. (Now we need reversed input!)
la source
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:
la source
Pip, 5 bytes
Try it online!
la source
C# (Visual C# Interactive Compiler), 9 bytes
Try it online!
la source
Scala, 7 bytes
Try it online!
la source
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).
la source
ï
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.la source
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.la source
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!
la source