Comment déterminer le module d'un flotteur en Ada 95
-
21-09-2019 - |
Question
Je dois déterminer le montant gauche d'un cycle de temps. Pour ce faire en C j'utiliser fmod. Mais dans ada je ne trouve aucune référence à une fonction similaire. Il doit être précis et il doit retourner un flotteur pour la précision.
Alors, comment puis-je déterminer le module d'un flotteur en Ada 95?
elapsed := time_taken mod 10.348;
left := 10.348 - elapsed;
delay Duration(left);
La solution
Utilisez la virgule flottante 'Remainder attribut.
Elapsed, Time_Taken : Float;
...
Elapsed := Float'Remainder(Time_Taken, 10.348);
Autres conseils
Pas une réponse à votre question réelle; mais, pour atteindre l'intention de ce morceau de code, pensez à utiliser
Je ne sais pas Ada, mais en supposant qu'il a une fonction de Edit: Je viens aussi trouvé cette discussion sur en utilisant l'attribut Reliquat à cet effet. Floor
vous pouvez utiliser elapsed := time_taken - Floor(time_taken / 10.348) * 10.348)
.