Warum ist diese Konvertierung unnötig?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Bartosz.

    Warum ist diese Konvertierung unnötig?

    Hallo liebes Forum,

    ich wurde gerade von Visual Studio 2019 darauf hingewiesen, dass die Konvertierung zu Double unnötig ist.
    Was ist das Problem:
    Ich möchte einen Integer haben, davor aber bitte runden (auf 0 Nachkommastellen). Aber der zu rundende Werte muss ein Double sein, damit die Bruchrechnung richtig ausgeführt wird. Daher das CDbl im Nenner. Dachte ich...

    Bei C / C++ ist das so, deswegen hab ich es mir mal angewöhnt, im Nenner des Bruchs (double) zu schreiben (hier dann CDbl)

    Mit 100.0 sagt VS das auch

    Danke, schönen Abend!
    Bilder
    • warum Konvertierung unnötig.jpg

      66,11 kB, 1.069×206, 81 mal angesehen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    @Bartosz In Basic / VisualBasic ist das anders als C / C++ / C#:
    Probiere dies aus:

    VB.NET-Quellcode

    1. Dim a As Integer = 3
    2. Dim b As Integer = 5
    3. MessageBox.Show((a / b).ToString()) ' Double-Division
    4. MessageBox.Show((a \ b).ToString()) ' Integer-Division
    Du dividierst mit /, also Double-Division, folglich ist die Konvertierung unnötig.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany achso es gibt extra 2 verschiedene Slashes! Dankeschön!
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.

    Bartosz schrieb:

    2 verschiedene Slashes
    in Basic-Dialekten, ja.
    Allerdings bringt (Math.PI \ Math.E) einen Fehler.
    C usw. casten immer in das größere Format.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!