如何确定 Ada 95 中 Float 的模数
我需要确定时间周期的剩余量。要在 CI 中做到这一点,需要使用 fmod。但在 ada 中我找不到类似函数的参考。它需要准确,并且需要返回浮点数以确保精度。
那么如何确定 Ada 95 中 Float 的模数呢?
elapsed := time_taken mod 10.348;
left := 10.348 - elapsed;
delay Duration(left);
I need to determine the amount left of a time cycle. To do that in C I would use fmod. But in ada I can find no reference to a similar function. It needs to be accurate and it needs to return a float for precision.
So how do I determine the modulus of a Float in Ada 95?
elapsed := time_taken mod 10.348;
left := 10.348 - elapsed;
delay Duration(left);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用浮点 'Remainder 属性。
Use the floating point 'Remainder attribute.
不是对您实际问题的答案;但是,要实现该代码段的目的,请考虑使用
Not an answer to your actual question; but, to achieve the intention of that piece of code, consider using delay until.
我不知道 Ada,但假设它有一个
Floor
函数,您可以使用elapsed := time_taken - Floor(time_taken / 10.348) * 10.348)
。编辑:我还刚刚发现这个关于使用剩余部分的讨论用于此目的的属性。
I don't know Ada, but assuming it has a
Floor
function you could useelapsed := time_taken - Floor(time_taken / 10.348) * 10.348)
.Edit: I also just found this discussion on using the Remainder attribute for this purpose.