Bitte können Sie helfen, dieses Problem zu lösen:Manchmal Zahl gerundet sind nicht konsistent
round(30.5)
[1] 30
round(31.5)
[1] 32
ich immer 0,5s entweder nach oben oder nach unten zu bekommen. Beliebige Lösung
Bitte können Sie helfen, dieses Problem zu lösen:Manchmal Zahl gerundet sind nicht konsistent
round(30.5)
[1] 30
round(31.5)
[1] 32
ich immer 0,5s entweder nach oben oder nach unten zu bekommen. Beliebige Lösung
Dies ist ein weiteres Beispiel für R-FAQ 7.31 (link to the FAQ on your device) ...... . Wenn Sie immer möchten, dass Gleitkommazahlen, die von print.default
als x.5 angezeigt werden, "aufrunden", dann müssen Sie ein bisschen "fuzz" hinzufügen. Ich habe diese Menge an Fuzz so gewählt, dass sie der Genauigkeit entspricht, mit der print.default normalerweise Zahlen anzeigt.
> round(30.5 +0.00000001)
[1] 31
Um dies in einer Funktion geschehen:
> round.up <- function(x, digits=0) round(x+0.00000001, digits)
> round.up(30.5)
Sie könnten auch diese nachzudenken:
> 31.5==31.50000000000000001
[1] TRUE
> 31.5==31.5000000000000001
[1] TRUE
> 31.5==31.500000000000001
[1] TRUE
> 31.5==31.50000000000001
[1] FALSE
> 31.50000000000001
[1] 31.5
> 31.50000001
[1] 31.5
> 31.50001
[1] 31.50001
Eine Lösung, die kein Druckformat abhängig Offset benötigt:
Um sich immer aufzurunden, verwenden Sie
ceiling(x - 0.5)
Um immer abrunden, verwenden
floor(x + 0.5)
'floor' oder' ceiling'? – Khashaa
Ich kenne sie, es tut mir leid. Wir haben keine Ahnung von Zahlen, aber wenn wir 0.5s in Daten haben, möchte ich immer entweder auf oder ab – user1309
Runden auf sogar ist eine grundlegende mathematische Regel – rawr