Konvertiere von Fahrenheit in Celsius

7

Ich versuche, eine Fahrenheit-Temperatur in Celsius umzuwandeln.
Folgendes zu tun, bekomme ich immer Null:

%Vor%

können Sie mir helfen, es zu reparieren?

    
user2723261 30.08.2013, 22:29
quelle

5 Antworten

33

5/9 führt eine ganzzahlige Division durch, dh, es löscht immer den Bruchteil, so dass es immer 0 zurückgibt.

5.0/9.0 führt eine Gleitkommadivision durch und gibt die erwartete 0,55555 ...

zurück

Versuchen Sie es stattdessen:

%Vor%

Weitere Informationen

p.s.w.g 30.08.2013 22:30
quelle
12

Ändern Sie Ihre Ganzzahldivision in Gleitkommadivision wie

%Vor%

Von C# Specification .7.2 Division operator ;

  

Ganzzahlige Division:

     

Die Division rundet das Ergebnis auf Null und den absoluten Wert von   Das Ergebnis ist die größtmögliche ganze Zahl, die kleiner als die ist   absoluter Wert des Quotienten der beiden Operanden. Das Ergebnis ist Null   oder positiv, wenn die beiden Operanden das gleiche Vorzeichen und Null oder haben   negativ, wenn die beiden Operanden entgegengesetzte Vorzeichen haben.

Wie Frederik sagte , reicht es auch nur eine Ihrer Variablen in Gleitkomma-Typ zu changeln. ( 5 / 9f oder 5f / 9 gibt die richtige Lösung)

    
Soner Gönül 30.08.2013 22:31
quelle
4

Früher in den Kommentaren schlug ich die Option vor, ein struct zu verwenden, um Ihre Temperaturkonvertierungslogik einzukapseln. Ich habe unten einen groben Hash (nur teilweise getestet), sollte es von Interesse sein:

%Vor%     
JohnLBevan 31.08.2013 01:53
quelle
1
%Vor%     
Milodin 07.11.2014 00:49
quelle
0

Dies ist eine allgemeine Methode, die alle Umwandlungen von Temperatureinheiten durchführt

%Vor%

erstellt TemperaturEinheit enum wie folgt

%Vor%     
Praveen M 31.01.2018 17:18
quelle

Tags und Links