Jak działa modulus z typem danych zmiennoprzecinkowych?

Próbuję znaleźć prostą operację modułu na zmiennym typie danych.

float a=3.14f;
float b=10f;
result=a%b;

Otrzymuję wynik = 3,14

Inny przykład wykorzystujący typy danych dziesiętnych:

decimal p=10;
decimal q=40;
result=p%q;

uzyskanie odpowiedzi = 20.

Nie rozumiem, jak działa moduł?

questionAnswers(2)

yourAnswerToTheQuestion