Markus: Auf nächste Ganzzahl runden

Hallo zusammen,

gibt es in Perl eine vergleichbare Funktion wie bei PHP ceil.

Ich möchte dass bei 0.33 1 als Ergebnis, bei 2.8888 3 als Ergebnis raus  kommt.

Diese Anweisung rundet leider nicht auf:

sprintf("%.f", 0.33);

Danke im voraus!

  1. Hi Markus!

    Diese Anweisung rundet leider nicht auf:
    sprintf("%.f", 0.33);

    Nein. Sie rundet _immer_ ab. Was tust du also? Richtig! :)

    Gegebenenfalls solltest du vorher noch eine Abfrage schalten, ob die Zahl 0 ist. Dann brauchst du natürlich nicht inkrementieren. *wink mit zaunspfahl*

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  2. Hell-O!

    gibt es in Perl eine vergleichbare Funktion wie bei PHP ceil.

    Fast. Das Standardmodul POSIX bietet dir diese Funktion.

    Diese Anweisung rundet leider nicht auf:
    sprintf("%.f", 0.33);

    Diese Anweisung ist zum Formatieren von Strings gedacht, nicht für mathematische Operationen.

    Siechfred

    1. Hi Siechfred!

      sprintf("%.f", 0.33);
      Diese Anweisung ist zum Formatieren von Strings gedacht, nicht für mathematische Operationen.

      Ich finde, für seine Zwecke ist sie aber durchaus ausreichend, weil er sowieso nur die Nachkommastellen weggeschnitten haben möchte.
      Wieso sollte der Mensch im voraus nicht rechnen und den Rechner entlasten?

      MfG H☼psel

      --
      "It's amazing I won. I was running against peace, prosperity, and incumbency."
      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  3. Hallo,

    möglicherweise gibt es eine solche Funktion. Notwendig ist sie aber nicht:

      
    my $x=3.5555;  
    my $y=int($x);  
      
    if($y<$x){  
       $y++;  
    }  
    
    

    Gruß aus Berlin!
    eddi

    --
    Wer Rechtschreibfehler findet, darf sie behalten.
    1. hi eddi,

      danke dir!

      Grüsse aus München.