Rund weg von Null
Inspiriert von Round gegen Null .
Runden Sie bei einer Zahleneingabe nach einer beliebigen vernünftigen Methode die Zahl "von Null weg" - positive Zahlen runden auf und negative Zahlen runden ab.
Wenn Sie die Eingabe als Zeichenfolge verwenden möchten (z. B. über STDIN), sollten Sie in der Lage sein, Zahlen mit oder ohne Dezimalpunkt zu verarbeiten. Wenn Sie es als Zahl nehmen, sollte es mindestens Gleitkomma-Genauigkeit (doppelte Genauigkeit nicht erforderlich) oder rationale Zahlen verarbeiten können.
Bei Bedarf können Sie eine Gleitkommazahl mit dem Dezimalpunkt (zB 42.0) ausgeben. (Oder lassen Sie einige Testfälle Fließkommazahlen und ganze Zahlen ausgeben, wenn dies Ihre Antwort verkürzt.)
Standardlücken sind nicht erlaubt, etc etc.
Testfälle
-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
wie es die Testfälle vermuten lassen?-0.1
und0.1
Antworten:
Excel, 13 Bytes
Alternative
quelle
EVEN
, was für eine seltsame Funktion ..R, 32 Bytes
quelle
Gelee , 4 Bytes
Ein monadischer Link, der eine Zahl akzeptiert, die eine Ganzzahl ergibt.
Probieren Sie es online! Oder sehen Sie sich eine Testsuite an .
Wie?
quelle
¡
bei negativen Zahlen? Ich glaube nicht, dass es dokumentiert ist¡
Wiederholung wird mit einerfor index in range(repetitions)
Schleife im Code implementiert .range([stop=]-1)
ist leer, dastart
standardmäßig0
undstep
standardmäßig1
und "Bei einem positiven Schritt wird der Inhalt eines Bereichsr
durch die Formelr[i] = start + step*i
wobeii >= 0
und bestimmtr[i] < stop
." docs¡
Das Verhalten von stützt sich auf das von Pythonrange
undrange(-1).__iter__().__next__()
wirft sofortStopIteration
.Python 3 , 23 Bytes
Probieren Sie es online!
-1 Byte dank xnor
quelle
(1|-(i>0))
, um ein Byte zu speichern(1,-1)[i>0]
.g=lambda r:0if r==0 else(int(r)+r/abs(r)if r/int(r)!=1 else r)
Gelee ,
54 BytesProbieren Sie es online!
Diese Portierung trägt die rekursive Stax-Antwort in Jelly ein. Überprüfen Sie diese Antwort auf eine Erklärung.
-1 Byte dank Nick Kennedy
Gelee ,
65 BytesProbieren Sie es online!
-1 Byte danke an Jonathan Allan
Wie funktioniert das?
quelle
ĊḞ>?0
würde funktionieren wie deine 6.AĊ×Ṡ
ist 4 und funktional identisch mit Ihrer ersten Antwort.Java (JDK) , 18 Byte
Probieren Sie es online!
Erklärungen
Verwendet a
BigDecimal
als Ein- und Ausgang.BigDecimal
hat eine MethodesetScale
, die die Skala der Zahl festlegt. Der erste Parameter ist die Anzahl der Stellen nach dem Punkttrennzeichen, der zweite ist der Rundungsmodus.ROUND_UP
ist die Rundung "von Null weg" und hat einen Wert von,0
so dass ich diesen Wert fest codiere.quelle
Vim, 36 Bytes / Tastenanschläge
Probieren Sie es online! oder Überprüfen Sie alle Testfälle!
Erläuterung:
quelle
$F-a <esc>
anstelle der ersten Zeile und ein Makro mit/
als bedingter statt:g
und:norm
gibt 29 Byte tio.run/##HczBCoJAFEZhWva/QpuLCNbizoxalBXRInqJMpjGCYVwmkx7/...J , 6 Bytes
Probieren Sie es online!
Nur eine 1-Zeichen-Änderung von meiner Antwort auf die Cousin-Frage .
quelle
C # (Visual C # -Compiler) ,
41 Byte,27 Byte,24 ByteProbieren Sie es online!
Erster Beitrag hier, viel Spaß damit, hoffe es gefällt euch. Ich hatte das Gefühl, dass C # hier leer ist
-14
tnx an @ abgelaufene Daten -3 tnx an @ night2
quelle
Code golf submission
Funktionalität verwendet, habe nur ein bisschen von meinen eigenen Wörtern zum Ende hinzugefügt, aber zum Bearbeiten habe ich nur diese Codezeile geändert und genau dort habe ich vergessen Aktualisiere den Link, der uns zum ersten Schritt zurückbringt, um ihn nur einmal zu ändern, irgendwie FEST hier, jedenfalls danke für den HinweisRunenverzauberungen ,
1816 BytesProbieren Sie es online!
"Addiert" (von Null weg) 0,999999 und unterbreitet das Ergebnis.
µ
ist in den Operatoren der Sprache dem Infinitesimalen am nächsten. Mit einem ordnungsgemäß funktionierendenTrunc(x)
Befehl unterstützt answer jetzt0
als Eingabe.quelle
divide by input
, um das "Vorzeichen" des Eingabewerts zu erhalten, das natürlich durch 0 dividiert wird, wenn die Eingabe 0 ist. Daran führt derzeit kein (guter) Weg vorbei. Benötige dieses Commit zuerst. Ich werde Dennis stupsen (Nebeneffekt, die Antwort wird kürzer).0
korrekt gehandhabt .Stax , 6 Bytes
Führen Sie es aus und debuggen Sie es
Verfahren:
quelle
C
944339 Bytesdanke an ceilingcat für 39 bytes
TIO
quelle
Retina 0.8.2 , 38 Bytes
Probieren Sie es online! Link enthält Testfälle. Erläuterung:
Löschen Sie Nullen nach dem Dezimalpunkt, um sicherzustellen, dass es sich bei der Zahl nicht um eine Ganzzahl handelt. Die nächsten beiden Übereinstimmungen schlagen fehl, wenn keine Nachkommastellen vorhanden sind.
Wenn der ganzzahlige Teil alle
9
s ist, stellen Sie ein Präfix ein0
, damit das Inkrement überläuft.Erhöhen Sie den ganzzahligen Teil der Zahl.
Löschen Sie den Bruchteil der Zahl.
quelle
05AB1E , 6 Bytes
Ein 5-Byte sollte auf jeden Fall möglich sein ..
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
JavaScript (ES6), 20 Byte
Probieren Sie es online!
Kommentiert
quelle
n=>(~~n-n%1)%1+n
) geschrieben, bis ich herausgefunden habe, dass mein Code für Zahlen zwischen -1 und 1 nicht funktioniert. Möglicherweise können Sie herausfinden, wie dies mit den letzten 3 Bytes funktioniert links!Perl 6 , 18 Bytes
Probieren Sie es online!
Erläuterung
quelle
MathGolf , 5 Bytes
Probieren Sie es online!
Erläuterung
Es ist schön, eine Verwendung für den
‼
Bediener zu finden .quelle
PHP , 30 Bytes
Probieren Sie es online!
Wenn die Zahl keine Ganzzahl ist, wird basierend auf dem Vorzeichen -1 (für negative Dezimalstellen) oder 1 (für positive Dezimalstellen) eine Ganzzahl hinzugefügt und anschließend ein Teil der neuen Zahl gedruckt.
PHP , 32 Bytes
Probieren Sie es online!
Grundsätzlich Ausgänge
floor
des Eingangs, wenn es kleiner als 0 ist, sonstceil
davon.PHP , 34 Bytes
Probieren Sie es online!
quelle
Brachylog , 7 Bytes
Probieren Sie es online!
oder
⌉₁ℕ₁|⌋₁
.quelle
Wolfram Language (Mathematica) , 18 Byte
Probieren Sie es online!
quelle
Faktor 57 Bytes
Probieren Sie es online!
quelle
APL (Dyalog Unicode) , 15 Byte
Probieren Sie es online!
Simple Dfn. Verwendet
⎕IO←0
.Wie:
quelle
sed, 131 Bytes + 2 Bytes für
-r
flagUngolfed
quelle
Perl 5
-pF/\./
, 35 BytesProbieren Sie es online!
quelle
3.0
. Für Schalter-pF\.
ist ausreichend: die//
sind optional.0.0
ist wahrJavaScript (node.js),
302321 BytesInspiriert von der C # Antwort.
Vielen Dank an @Value Ink und @Gust van de Wal für -7 Bytes!
Nochmals vielen Dank, @Gust van de Wal für weitere -2 Bytes!
quelle
+=
wenn+
dies der Fall ist? -1 ByteparseInt()
würde ich einfach~~
am Anfang oder einem anderen bitweisen Operator wie|0
oder^0
am Ende verwenden, um einen weiteren Teil der Bytes zu speichern+=
, danke für den HinweisPerl 6 , 19 Bytes
Probieren Sie es online!
Nicht die kürzeste Lösung, aber ich arbeite daran. Im Grunde schneidet dies die Zahl ab und addiert dann eins von null weg, wenn die Zahl von Anfang an nicht ganz war
quelle
Java (OpenJDK 8) , 43 Byte
Probieren Sie es online!
quelle
return
Anweisung geschrieben werden.(int)a/a<1
a%1!=0
BigDecimal.setScale
Methode, die hervorragende Ergebnisse liefert, wie meine Antwort zeigtJapt , 6 Bytes
Probieren Sie es hier aus
quelle
Rot , 46 Bytes
Probieren Sie es online!
Die etwas besser lesbare Version ist 2 Byte länger (diese langen Funktionsnamen!):
quelle
Scala , 16 Bytes
Probieren Sie es online!
Scala , 22 Bytes
Probieren Sie es online!
quelle