Kezdőoldal » Számítástechnika » Programozás » C# math. Cos hibás érték?

C# math. Cos hibás érték?

Figyelt kérdés

Lenne egy ilyen függvényem:


double angle = v1 * Math.PI / 180;


return Math.Cos(angle);


Valamiért v1 = 90-re nem 0-t hanem ezt az értéket kapom vissza: 6,12303176911189E-17


Minden más értékre helyes kivéve 90-re.Mi lehet ennek az oka?


2017. febr. 10. 20:06
 1/1 Koplárovics Béci ***** válasza:
100%
A double kerekítése miatt. A lebegőpontos számok (legyenek azok akárhány Byte-on tárolva) nem lesznek pontosak. C#-ban a double 15-16 helyiértékig pontos. A Pi ettől több számjeggyel rendelkezik, így minden vele történő számítás kicsit pontatlan lesz. Tehát te tulajdonképpen nem 90°-nak a koszinuszát számoltad ki, hanem olyasmiét, hog 89,999 999 999 999 999° (5x3db 9-es a 89, után, ha a rendszer javítaná). Azért tudom, hogy erre kerekített a gép, mert ha 90,000 000 000 000 001°-ra kerekített volna, akkor negatív értéket kapsz. Így pozitívat, de nagyon kicsit.
2017. febr. 10. 20:24
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!