Testissä tuli vastaan yllätys. modf() muuttaa negatiivisten radiaanien kokonaisosat positiivisiksi ja jättää jakojäännöksen negatiiviseksi. Miten korjaan tämän siten, että funktio käsittelee myös negatiiviset radiaanit oikein ? JVM.
#include <math.h> struct OSA { double rad; double aste; double min; double sek; }testiosa; /* Radiaanit asteiksi, minuuteiksi ja sekunneiksi */ void Radtodeg( struct OSA *osa ) { double aste, min, sek, kokaste, kokmin; aste = testiosa.rad * 180/M_PI; min = modf( aste, &kokaste ); osa->aste = kokaste; min = min * 60; sek = modf( min, &kokmin ); osa->min = kokmin; osa->sek = sek * 60; }
Aihe on jo aika vanha, joten et voi enää vastata siihen.