C# Rechnung

  • Moin,


    ich versuche grade was zu berechnen und bekomme dauerhaft nur 0 aus. Egal welche von den beiden.

    Einzeln bekomme ich jeweils ein Wert, sobald ich aber eine Rechnung erstelle, zeigt er mir nur 0 an.


    C#
    Console.WriteLine("Geladen: " + loadBuff + " von: " + MaxSpaceProgress);
    Console.WriteLine("Rechnung: " + (loadBuff / MaxSpaceProgress) + " Prozent: " + ((loadBuff / MaxSpaceProgress) * 100));


    Geladen: 3061176 von: 28268220

    Rechnung: 0 Prozent: 0


    Keine Ahnung warum das so ist.

  • Der Grund warum er dir 0 ausgibt ist weil loadBuff kleiner als MaxSpaceProgress ist und du somit einen kleineren Wert durch einen größeren Wert teilst. Da du aber als Integer nur glatte zahlen bekommst gibt er dir einfach 0 aus.

    ToString ist überflüssig an der Stelle.


    Arbeite mit Floats an der Stelle, dann würde er dir 0.1 ausgeben statt auf 0 abzurunden und bei Prozentrechnungen machen Floats ebenfalls mehr Sinn.

    PS:
    Double wäre Overkill außer du willst Lichtjahre in picometer umrechnen.

    3 Mal editiert, zuletzt von [DT]midomen ()

  • Bekomme selbst bei double ein Wert von null.



    #1 Problem gelöst.

    Es gibt einfach eine eigenständige Funktion.


    C#
    decimal billCount =  Decimal.Divide(loadBuff, MaxSpaceProgress);
    decimal billCount2 = (Decimal.Divide(loadBuff, MaxSpaceProgress)) * 100;


    Geladen: 10178272 von: 28267876

    Rechnung: 0.3600649726919702067463434465 Prozent: 36

    2 Mal editiert, zuletzt von #Apple ()