Ergebnis 1 bis 6 von 6

Thema: Korrekte Formatierung von Zahlen

  1. #1
    Senior Avatar von ShadowEagle
    Registriert
    Jul 2016
    Beiträge
    685
    Gefällt mir!
    426
    Du gefällst: 389

    Korrekte Formatierung von Zahlen

    Hi Community,

    derzeit verwende ich folgenden Code um Partgroessen abbilden zu lassen:

    Code:
    for (i = 0; i < IMirror.Count; i++)
      if (IMirror[i].PartSize > 0)
      {
      mbzahl = FloatToStr(IMirror[i].PartSize * 1);mbzahl = copy(mbzahl, 0, 4);
      print("  Partgroesse: " + mbzahl + " MB (FreeUser geeignet!)  |"); break;
      }
    Das funktioniert in den meisten Faellen auch recht gut, d. h. wenn die Zahl vierstellig ist. Sobald die Zahl dreistellig wird, wird folgendes ausgegeben:

    .. 931. MB ...
    Nennt es Perfektionismus, aber mich stoert dieser unnoetige Punkt bei dreistelligen MB-Angaben. Kennt jemand einen Workaround hierfuer, so dass man die Funktion umschreiben kann und dreistellige Zahlen anders als vierstellige behandelt werden? Weil die Ursache dieses "Fehlers" liegt ja bei dem Teil der Funktion:

    copy(mbzahl, 0, 4);
    Abaendern in eine 3 würde vierstellige Zahlen verfaelschen, d. h. die Funktion muesste in drei- oder vierstellige Zahlen unterscheiden. Bin ueber jede Hilfe dankbar. LG

  2. Werbung - Hier werben?
  3. #2
    Senior Avatar von Nimbus
    Registriert
    Oct 2015
    Beiträge
    561
    Gefällt mir!
    96
    Du gefällst: 573
    Ich denke Ziel der Übung ist es, die Stellen nach dem Komma zu verlieren?

    Ich weiß nicht welche Sprache man in Intelligen nutzten kann und ich kann sie auch nicht, aber ich würde auf etwas in diese Richtung hier tippen:
    Code:
    mbzahl = FloatToStrF(IMirror[i].PartSize, ffGeneral, 10, 0);
    Eventuell auch (keine Ahnung, ob die Multiplikation mit 1 unnötiges Überbleibsel ist oder eine implizite Konversion bedeutet)
    Code:
    mbzahl = FloatToStrF(IMirror[i].PartSize * 1, ffGeneral, 10, 0);

  4. Diesen Mitgliedern gefällt dieser Beitrag:


  5. #3
    Senior
    THEMENSTARTER

    Avatar von ShadowEagle
    Registriert
    Jul 2016
    Beiträge
    685
    Gefällt mir!
    426
    Du gefällst: 389
    Soweit mir bekannt muesste das Pascal / Delphi sein.

    Bei Deinen zwei Loesungsvorschlaegen erscheint leider folgende Fehlermeldung als Resulatat:


  6. #4
    Im Ruhestand Avatar von fluffyxz
    Registriert
    Aug 2015
    Beiträge
    107
    Gefällt mir!
    296
    Du gefällst: 134
    PHP-Code:
    for (0IMirror.Counti++)
      if (
    IMirror[i].PartSize 0)
      {
      
    mbzahl FloatToStr(Round(IMirror[i].PartSize));
      print(
    "  Partgroesse: " mbzahl " MB (FreeUser geeignet!)  |"); break;
      } 
    So?
    Rein: 1145,7
    Raus: 1146

  7. Diesen Mitgliedern gefällt dieser Beitrag:


  8. #5
    Senior
    THEMENSTARTER

    Avatar von ShadowEagle
    Registriert
    Jul 2016
    Beiträge
    685
    Gefällt mir!
    426
    Du gefällst: 389
    Astrein, vielen Dank!

  9. #6
    Anfänger
    Registriert
    Mar 2020
    Beiträge
    5
    Gefällt mir!
    3
    Du gefällst: 0
    Hallo,
    ich würde gerne bei Einträgen die im Terrabyte Volumen liegen mit vier Dezimalstellen arbeiten und bei Gigabyte mit zwei Dezimalstellen. Ich wollte es nun über ToFixed in einer getrennten Methode lösen. Klappt mit ToFixed nicht, also das Kürzen auf zwei bzw. vier Dezimalstellen.

    Würde da jemand supporten? Bzw. kürz erklären mit welcher Funktion man auf Dezimalstellen runden kann?
    PHP-Code:
    //Convert MB to TByte if needed
    function FormatSizeToTB(mbytes)
    {
      
    gbyte mbytes 1024;
      
    tbsize gbyte 1024;
      
    volume tbsize.tofixed(4);
      
    size FloatToStr(volume);
      return 
    size;
    }

    //Convert MB to GByte if needed
    function FormatSizeToGB(mbytes)
    {
      
    gbyte mbytes 1024;
      
    volume gbyte.tofixed(2);
      
    size FloatToStr(volume);
      return 
    size;

    Hatte auch schon per Round probiert:

    PHP-Code:
    //Convert MB to Gbyte if needed
    function FormatSizeToGB(mbytes)
    {
      
    gbyte mbytes 1024;
      
    volume round(gbyte;2);
      
    size FloatToStr(volume);
      return 
    size;

    Guten Start in die kommende Woche!

    ----------------

    Nicht so ganz wie erwartet, aber es läuft:
    volume = copy(gbyte,3);
    3 weil wegen Komma und so
    Geändert von Re4per (07.04.2020 um 15:08 Uhr)

Ähnliche Themen

  1. Zahlen auf Karte anzeigen
    Von MongoBongo im Forum Daily Talk & Offtopic
    Antworten: 1
    Letzter Beitrag: 10.01.2021, 19:30
  2. Bei Coinpayments per BTC zahlen ?
    Von goa2016 im Forum Offshore, Steuern & Zahlungen, Anonymes Business
    Antworten: 3
    Letzter Beitrag: 01.08.2019, 18:40
  3. Anonym Zahlen
    Von Andi17 im Forum Offshore, Steuern & Zahlungen, Anonymes Business
    Antworten: 15
    Letzter Beitrag: 17.11.2018, 23:48
  4. (HTML) - Formatierung gesucht für Link Ausgabe
    Von Checcker im Forum Entwicklung / Programmierung
    Antworten: 4
    Letzter Beitrag: 23.03.2018, 23:41
  5. [Hackerpreisliste:] So viel zahlen NSA und Co für iOS-Zero-Day Exploit
    Von RedDevil im Forum Datenschutz & Privatsphäre (IT-Security)
    Antworten: 0
    Letzter Beitrag: 04.07.2016, 14:04

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org