Antwort
floor()
runden eine Zahl auf die nächste Ganzzahl ab.
EDIT: Wie von Mark unten ausgeführt, funktioniert dies nur für positive Werte, was eine wichtige Annahme ist. Für negative Werte sollten Sie ceil()
verwenden - aber das Vorzeichen des Eingabewerts zu überprüfen wäre umständlich und Sie würden wahrscheinlich stattdessen Marks oder TechnoP (int) cast
Idee verwenden. Ich hoffe, das hilft.
Ich bin mir nicht sicher, ob dies für PHP gilt, aber die (int) -Sendung könnte einen Überlauf ergeben ... Ah, http://StackOverflow.com/Questions/300840/Force-PHP-Integer-Overflow sagt us: PHP max int ist 2147483647. – osti
$y = 1.235251;
$x = (int)$y;
echo $x; //will echo "1"
Edit: die explizite Umwandlung verwenden zu (int) ist der effizienteste Weg, um auf diese AFAIK. Wenn Sie auch nach (int) umwandeln, werden die Ziffern nach dem "." Abgeschnitten. wenn die Zahl negativ ist, anstatt auf die nächst niedrigere negative Zahl gerundet:
echo (int)(-3.75); //echoes "-3";
echo floor(-3.75); //echoes "-4";
explicit cast ist schneller als floor() in der Tat, aber wenn solche Mikrooptimierungen von Interesse sind, sollten Sie PHP nicht verwenden. –
Ich stimme nicht zu, wenn ich PHP benutze, habe ich bereits einen großen Leistungsabfall, nur indem ich eine interpretierte Sprache benutze. Es liegt immer noch in meiner Verantwortung als Entwickler, keine unnötige Verzögerung einzuführen. Es ist auch ein Problem des Speichers, da floor() ein Funktionsaufruf ist und dadurch zusätzlichen Speicher benötigt. Abhängig von der Situation kann der Leistungseinfluss sogar ziemlich signifikant sein. – selfawaresoup
$y = 1.234;
list($y) = explode(".", "$y");
Nun, wenn Sie einen Verschleierungswettbewerb gewinnen wollen, wäre dies der Weg zu gehen ... Lustig, aber besser nicht für echte verwenden ... – selfawaresoup
Wenn Sie Ihre Eingabe nur positive schwebt dann wie bereits Bodenarbeiten erwähnt werden können.
floor(1.2)
Allerdings, wenn Ihre ganze Zahl auch negativ sein könnte dann nicht Sie Boden können, was Sie wollen: es abrundet immer noch für negative Zahlen. Stattdessen können Sie wie bei einem anderen erwähnten Eintrag in int schreiben. Dies gibt Ihnen das richtige Ergebnis für negative und positive Zahlen.
(int)-1.2
Auch mit einer Zeichenfolge, wird floor() arbeiten, weil PHPs dynamisch Eingabe, solange die Zeichenfolge außer Ziffern und einem "." keine merkwürdigen Zeichen enthält. Preg zu starten führt nur zu einer langsamen Performance und einer Verschwendung von Speicher. – selfawaresoup
@Techpriester: OK entfernt. Aber ich denke immer noch, du solltest int verwenden, nicht floor, wenn die Eingabe negativ sein könnte. Niemand hat bisher negative Eingaben in Betracht gezogen, was ich für eine Schande halte, weil das Poster nicht gesagt hat, dass die Eingabe positiv sein muss. –
@Mark: Wahr. Daran habe ich nicht gedacht.Ich postete (int) nur aus Performancegründen :) – selfawaresoup
Sie könnten einen bitweisen Operator verwenden.
Ohne:
echo 49/3;
>> 16.333333333333
Mit "| 0" bitweise:
echo 49/3 | 0;
>> 16
- 1. Löschen Sie alle Felder nach dem Senden
- 2. Löschen Sie einen Punkt von Ihrer Figur nach dem Plotten
- 3. So löschen Sie den Cache nach dem Abmelden In Laravel
- 4. So löschen Sie Eingabefelder nach Formularübergabe
- 5. So löschen Sie neuen Speicher nach dem Realloc
- 6. So reparieren Sie Daten nach dem Ändern des Schlüssels
- 7. Löschen von Formulardaten nach dem Einreichen in PHP
- 8. So löschen Sie Mercurial-Zweig nach Merge
- 9. So löschen Sie einen Einkaufswagen php
- 10. So löschen Sie nur mit dem Primärschlüssel?
- 11. So schreiben Sie formatierte Zahlen als Zahlen in JExcel (jxl)
- 12. So löschen Sie eine lokale Warteschlange nach dem Löschen der q-Datei
- 13. So löschen Sie zuvor gechlossene Elemente in PHP
- 14. Excel Extra Spalten nach alle löschen
- 15. So löschen Sie alle Apps Cache-Daten in Android Marshmallow
- 16. Wie alle Formen nach dem Zeichnen zu löschen
- 17. So löschen Sie MemoryCache?
- 18. So löschen Sie alle Azure-Ressourcen mit Powershell
- 19. So starten Sie eine neue Aktivität an dem Punkt, an dem sie angeklickt wird
- 20. Einfügen nach dem Löschen in NSManagedObjectContext
- 21. Belassen Sie nur zwei Dezimalstellen nach dem Punkt
- 22. Löschen Sie alle Zeilen mit
- 23. Wiederhole Zahlen nach dem Muster numpy
- 24. So löschen Sie viele Knoten
- 25. Nachricht löschen nach dem Verbrauch in KAFKA
- 26. Trimmen von Zahlen mit PHP
- 27. Datei nach dem Upload löschen
- 28. Trimmen Sie alle Zeichen aus dem Dateinamen nach dem ersten "_"
- 29. OpenGL Punkt Position nach dem Rendern (3d -> 2d)
- 30. Finden Sie alle Fenster unter einem Punkt
Kann die Zahl negativ sein? –