1
我有一個實數x,我想得到數(x mod 2 * PI)= y,其中y在0和2 * PI之間。我需要模C++
我可以做一個循環,如果x是負數我只是不斷添加2 * pi直到我的數字在[0,2 * pi]的範圍內,或者如果x大於2 * pi我可以保留減法。不過,我希望有一個更優雅的方式來做到這一點。
我嘗試這樣做:
fmod(-0.3434073,2*M_PI);
,但是這仍然-0.3434073。爲什麼以及如何才能讓它按照我的意願工作?
創造條件。如果輸入是負數,那麼2 * M_PI必須添加到它之後。 – Notinlist
你是否需要模π的雙倍表示,或者兩次模數數2π?在第二種情況下,它要複雜得多,查找「減少參數」或查看http://port70.net/~nsz/musl/clang-2013-10-04/report-00117a的實例。 html。即使在第一種情況下,反覆加或減會導致舍入誤差大於所需。 –