Just nu i M3-nätverket
Gå till innehåll

Formler (temperaturomvandling)


ScIeNcE_ErRoR

Rekommendera Poster

ScIeNcE_ErRoR

Hej,

 

Jag håller på att göra ett program i Visual C# .NET som omvandlar mellan olika temperaturer. Mitt problem är när jag försöker att konvertera från en temperatur till en annan, och får fel slutresultat. Formlerna är hämtade från wikipedia.

 

Om jag konverterar 0 Kelvin så får jag resultatet 559,725 Delisle (Rätt).

 

Formel: De = (373,15 - K) * 3 / 2. Resultat: 559,725 Delisle.

 

Om jag konverterar 559,725 Delisle så får jag -5,6843...osv Kelvin (Fel).

 

Formel: K = 373,15 - De * 2 / 3. Resultatet SKA bli 0 K, men blir inte det.

 

Om jag slår ut samma formel på en miniräknare (Texas Instruments Ti-30X IIB) så blir resultatet 0 Kelvin, som det ska vara.

 

Så min fråga är om någon kan se något fel i formeln/formlerna, eller om det är Visual Studio (alternativt Texas Instruments miniräknare) som räknar fel? Min gissning är Visual Studio, men det vore i alla fall bra att veta om formeln i sig själv är rätt (bakvänd). Formeln räknar nämligen rätt på andra temperaturer, om inte wikipedia (som trots allt är gratis) har felaktiga temperatur referenser. Tack på förhand och hoppas någon kan verifiera formeln.

 

Länk till kommentar
Dela på andra webbplatser

ScIeNcE_ErRoR

Jag provade den formeln också, men tyvärr med samma resultat. Kelvin blev -5,6843...osv. Tack för hjälpen dock.

 

Länk till kommentar
Dela på andra webbplatser

Jag stänger den här tråden och hänvisar till ursprungstråden i C#-forumet.

//eforum.idg.se/viewmsg.asp?entriesid=950454

 

Cecilia - Moderator för Matematik

 

Länk till kommentar
Dela på andra webbplatser

ScIeNcE_ErRoR

Koden är väldigt enkel, bara normal kod.

 

De = Convert.ToDouble(Input);
K = 373.15 - De * 2 / 3;
OutputK = Convert.ToString(K);
OutputK.Text = OutputK;

 

Vanlig, enkel kod. Hade jag använt Float istället för Double, så kan jag få varningen "Possible loss of data" i konverteringen, men Double hanterar stora tal och många decimaler. Min gissning är att det är någonting i Visual Studio, men samtidigt räknar formeln rätt på andra tal om nu inte wikipedia har felaktig information.

 

Men jag har provat andra lösningar också, så som Delisle till Celsius och vidare till Kelvin, och jag får fortfarande samma negativa resultat, vilket jag tycker är omöjligt. -273,15 + 273,15 kan aldrig bli -5,6843... hur mycket jag än försöker. Så mest troligt ett Visual Studio fel någonstans. Tack för hjälpen i alla fall.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

Gäst
Detta ämne är nu stängt för ytterligare svar.
×
×
  • Skapa nytt...