Mam program w C ++ (skompilowany przy użyciu g ++). Próbuję zastosować dwa podwójne jako operandy do funkcji modułu, ale pojawia się następujący błąd:
błąd: niepoprawne argumenty typu „double” i „double” do binarnego „operatora%”
Oto kod:
int main() {
double x = 6.3;
double y = 2;
double z = x % y;
}
fmod(x,0.1)
podzieli x przez tę dokładną część i zajmie resztę, zamiast dzielić przez wartość liczbową „jedna dziesiąta”.
fmod
mogą powodować nieoczekiwane zachowania. Na przykładfmod(1, 0.1);
powinien matematycznie wynosić zero, ale w rzeczywistości będzie wynosić prawie 0,1. Zakres błędu rośnie wraz z wielkością ilorazu. Na przykładfmod(9E14, 0.1);
ocenia na około 0,05, co z matematycznego punktu widzenia jest po prostu błędne.