/ / Matematika JavaScript poskytuje úplne nesprávne výsledky - javascript, matematika, pohyblivá čiarka, pohyblivá presnosť

JavaScript matematiky dáva úplne nesprávne výsledky - javascript, matematika, pohyblivou čiarkou, pohyblivou presnosťou

Mám úlohu na vytvorenie programu, ktorý dokáže vypočítať plochu pod grafom v určitej oblasti. Moja funkcia je f(x)=3+(tan(x))^2 Premenil som to na javascript, takže to vyzerá takto:

var y = 3 + Math.pow(Math.tan((x)*(180/Math.PI)), 2)

To dáva správny výsledok pri určitých hodnotách x. Ale niekedy, napr. na x = 3.4, dáva to zvláštne číslo ako 16, kde som niečo okolo čakal 3 alebo 4.

Čítal som, že to môže byť spôsobené problémom s pohyblivou rádovou čiarkou, ale nemal by to znamenať veľký rozdiel? Nerozumiem tomu. :(

Na zmenu systému používam slučku for x hodnota a pole na uloženie hodnôt.

odpovede:

1 pre odpoveď č. 1

x*180/π prevádza uhol x, uvedené v radiánoch, v stupňoch. Ale to je takmer úplne zlé tu: trigonometrické funkcie skriptu JavaScript očakávajú svoje argumenty v radiánoch. Takže ak je váš uhol v radiánoch, nepotrebujete vôbec žiadnu konverziu, a ak je v stupňoch, mali by ste konvertovať iným spôsobom okrúhle, a to x*π/180.