Arrondir à zéro
Inspiré par Round vers zéro .
Étant donné une entrée de nombre via toute méthode raisonnable, arrondissez le nombre «loin de zéro» - les nombres positifs arrondissent et les nombres négatifs arrondissent vers le bas.
Si vous avez l'intention de prendre l'entrée sous forme de chaîne (via STDIN, par exemple), vous devriez pouvoir gérer les nombres avec ou sans le point décimal. Si vous le prenez comme un nombre, il devrait au moins être capable de gérer la précision en virgule flottante (double précision non requise) ou les nombres rationnels.
Vous pouvez sortir un nombre à virgule flottante avec le point décimal (par exemple 42,0) si vous le souhaitez. (Ou même avoir des cas de test en sortie en virgule flottante et un certain nombre en sortie, si cela rend votre réponse plus courte.)
Les échappatoires standard ne sont pas autorisées, etc., etc.
Cas de test
-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
comme les cas de test semblent le suggérer?-0.1
et0.1
Réponses:
Excel, 13 octets
Alternative
la source
EVEN
, quelle fonction étrange ..R, 32 octets
la source
Gelée , 4 octets
Un lien monadique acceptant un nombre qui donne un entier.
Essayez-le en ligne! Ou voir un suite de tests .
Comment?
la source
¡
les nombres négatifs? Je ne pense pas que ce soit documenté¡
nature répétitive est implémentée avec unefor index in range(repetitions)
boucle dans le code.range([stop=]-1)
est vide car parstart
défaut à0
et parstep
défaut à1
et "Pour une étape positive, le contenu d'une plager
est déterminé par la formuler[i] = start + step*i
oùi >= 0
etr[i] < stop
." docs¡
Le comportement de repose sur celui de Pythonrange
, etrange(-1).__iter__().__next__()
lance immédiatementStopIteration
.Python 3 , 23 octets
Essayez-le en ligne!
-1 octet grâce à xnor
la source
(1|-(i>0))
pour enregistrer un octet(1,-1)[i>0]
.g=lambda r:0if r==0 else(int(r)+r/abs(r)if r/int(r)!=1 else r)
Gelée ,
54 octetsEssayez-le en ligne!
Cette réponse récursive Stax de ports dans Jelly, alors vérifiez cette réponse pour une explication.
-1 octet grâce à Nick Kennedy
Gelée ,
65 octetsEssayez-le en ligne!
-1 octet merci à Jonathan Allan
Comment celui-ci fonctionne
la source
ĊḞ>?0
fonctionnerait comme votre 6.AĊ×Ṡ
est 4 et fonctionnellement identique à votre première réponse.Java (JDK) , 18 octets
Essayez-le en ligne!
Explications
Utilise une
BigDecimal
entrée et une sortie.BigDecimal
a une méthodesetScale
qui définit l'échelle du nombre. Le premier paramètre est le nombre de chiffres après le séparateur de points, le second est le mode d'arrondi.ROUND_UP
est l'arrondi "loin de zéro" et a une valeur0
donc je coder en dur cette valeur.la source
Vim, 36 octets / touches
Essayez-le en ligne!ou Vérifiez tous les cas de test!
Explication:
la source
$F-a <esc>
au lieu de la première ligne et une macro avec/
comme conditionnel à la place de:g
et:norm
donne 29 octets tio.run/##HczBCoJAFEZhWva/QpuLCNbizoxalBXRInqJMpjGCYVwmkx7/…J , 6 octets
Essayez-le en ligne!
Juste un changement de 1 caractère par rapport à ma réponse à la question du cousin .
la source
C # (Visual C # Compiler) ,
41 octets27 octets24 octetsEssayez-le en ligne!
Premier post ici, amusez-vous avec, j'espère que vous l'aimez. J'ai senti que la place C # est vide ici
-14 tnx à @expired data
-3 tnx à @ night2
la source
Code golf submission
fonctionnalité , j'ai juste ajouté un peu de mes propres mots à la fin, mais pour éditer j'ai juste changé cette ligne de code, et ur là, j'ai oublié de mettre à jour le lien, ce qui nous ramène à la première étape, pour ne modifier qu'une seule fois, un peu SOLIDE ici, de toute façon, tnx pour l'astuce aussiEnchantements runiques ,
1816 octetsEssayez-le en ligne!
"Ajoute" (à partir de zéro) 0,999999 et planifie le résultat.
µ
est la chose la plus proche d'une infinitésimale dans les opérateurs de langage. Avec uneTrunc(x)
commande fonctionnant correctement , la réponse prend désormais en charge0
en entrée.la source
divide by input
pour obtenir le "signe" de la valeur d'entrée, qui, bien sûr, se divise par 0 lorsque l'entrée est 0. Il n'y a pas de (bon) moyen de contourner cela pour le moment. Aura besoin de ce commit en premier. Je vais pousser Dennis (avantage secondaire, la réponse deviendra plus courte).0
correctement.Stax , 6 octets
Exécuter et déboguer
Procédure:
la source
C,
944339 octetsmerci à plafondcat pour 39 octets
TIO
la source
Retina 0.8.2 , 38 octets
Essayez-le en ligne! Le lien inclut des cas de test. Explication:
Supprimez les zéros après la virgule décimale, pour vous assurer que le nombre n'est pas un entier; les deux correspondances suivantes échouent s'il n'y a pas de chiffres après la virgule décimale.
Si la partie entière est entièrement
9
s, préfixez a0
pour permettre à l'incrément de déborder.Incrémentez la partie entière du nombre.
Supprimez la partie fractionnaire du nombre.
la source
05AB1E , 6 octets
Un 5 octets devrait certainement être possible.
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
JavaScript (ES6), 20 octets
Essayez-le en ligne!
Commenté
la source
n=>(~~n-n%1)%1+n
) until I found out that my code didn't work for numbers between -1 and 1. You might be able to figure out how to make this work with the last 3 bytes there's left!Perl 6, 18 bytes
Try it online!
Explanation
la source
MathGolf, 5 bytes
Try it online!
Explanation
It's nice to find usage for the
‼
operator.la source
PHP, 30 bytes
Try it online!
If number is not integer, based on the sign -1 (for negative decimals) or 1 (for positive decimals) is added to it and then integer part of the new number is printed.
PHP, 32 bytes
Try it online!
Basically outputs
floor
of input if it is less than 0, elseceil
of it.PHP, 34 bytes
Try it online!
la source
Brachylog, 7 bytes
Try it online!
or
⌉₁ℕ₁|⌋₁
.la source
Wolfram Language (Mathematica), 18 bytes
Try it online!
la source
Factor, 57 bytes
Try it online!
la source
APL (Dyalog Unicode), 15 bytes
Try it online!
Simple Dfn. Uses
⎕IO←0
.How:
la source
sed, 131 bytes + 2 bytes for
-r
flagUngolfed
la source
Perl 5
-pF/\./
, 35 bytesTry it online!
la source
3.0
. For switches,-pF\.
is sufficient: the//
are optional.0.0
is trueJavaScript (node.js),
302321 bytesInspired by the C# answer.
Thanks to @Value Ink and @Gust van de Wal for -7 bytes!
Thanks again, @Gust van de Wal for another -2 bytes!
la source
+=
when+
will do the trick in this case? -1 byteparseInt()
, I'd just use~~
at the start or another bitwise operator like|0
or^0
at the end to save another chunk of bytes+=
, thx for pointing it outPerl 6, 19 bytes
Try it online!
Not the shortest solution, but I'm working on it. Basically this truncates the number, then adds one away from zero if the number was not whole to begin with
la source
Java (OpenJDK 8), 43 bytes
Try it online!
la source
return
statement.(int)a/a<1
toa%1!=0
: 30 bytesBigDecimal.setScale
method that gives excellent results, like my answer demonstratesJapt, 6 bytes
Try it here
la source
Red, 46 bytes
Try it online!
The slightly more readable version is 2 byte longer (those long function names!):
la source
Scala, 16 bytes
Try it online!
Scala, 22 bytes
Try it online!
la source