PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   number_format / 3 Kommastellen nur wenn 3. vorhanden (https://www.php-resource.de/forum/php-developer-forum/103114-number_format-3-kommastellen-nur-wenn-3-vorhanden.html)

gruenspan 04-07-2012 12:33

number_format / 3 Kommastellen nur wenn 3. vorhanden
 
Hallo zusammen,

ich habe unterschiedliche Zahlen in der Datenbank stehen. Bspw.
  • 1
  • 3,5
  • 2,75
Diese gebe ich schön formatiert mittels number_format immer mit 2 Nachkommstellen aus (1,00; 3,50; 2,75). Es gibt einen Fall, dass eine Zahl vorkommt, die 3 Nachkommastellen hat (4,755).

Wenn ich number_format dahingehend ändere, das drei Nachkommastellen angezeigt werden, dann hätte ich bei eine 1 bei der Ausgabe eine 1,000. Das ist aber unschön. Gibt es eine Möglichkeit, das die dritte Nachkommastelle nur ausgeben wird, wenn sie nicht 0 (null) ist? Kann ich sozusagen vorab prüfen wieviele Nachkommastellen eine Zahl besitzt?

Vielen Dank

unset 04-07-2012 12:53

PHP-Code:

rtrim($number'0'); 

Sollte machen, was du willst.

PHP: rtrim - Manual

gruenspan 04-07-2012 13:21

Das würde mir aber auch die 0 (null) von 3,50 abschneiden.

Hintergrund ist, dass ich für Unterschiedliche Produkte jeweils eine Gebühr in Prozent ausgebe. Das läuft über immer über die selbe Funktion. Nur einige wenige Produkte haben eben die Gebühr mit drei Nachkommastellen. mmh

:dontknow:

unset 04-07-2012 13:25

Dann prüft du vorher eben, ob der Wert überhaupt drei Nachkommastellen hat. Wie das geht weißt du doch, oder?

gruenspan 04-07-2012 13:27

Zitat:

Zitat von unset (Beitrag 661843)
Dann prüft du vorher eben, ob der Wert überhaupt drei Nachkommastellen hat. Wie das geht weißt du doch, oder?

Auf die Gefahr hin gesteinigt zu werden ... nein.

EDIT:
Spontan würde ich sagen ich nehme den Wert und multipliziere diesen mit 100. Danach formatiere ich diesen einmal mit einer und einmal mit keiner Nachkommastelle und vergleiche diese beiden dann. Ist der erste größer als der zweite, dann hat dieser drei Nachkommastellen.

unset 04-07-2012 13:41

Kurz runtergeschrieben, könnte falsch sein, ich mache schon lange kein PHP mehr ;)

PHP-Code:

$number 3.45678;
$parts explode($number'.');
if(
strlen($parts[1]) > 3) {
  
// code von oben



gruenspan 04-07-2012 13:49

Zitat:

Zitat von unset (Beitrag 661846)
Kurz runtergeschrieben, könnte falsch sein, ich mache schon lange kein PHP mehr ;)

PHP-Code:

$number 3.45678;
$parts explode($number'.');
if(
strlen($parts[1]) > 3) {
  
// code von oben



Auf den ersten Blick würde ich sagen, ist richtig ;-)

PS: Danke


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:39 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG