寻找 QT 函数将 qint64 类型的变量(整数)四舍五入到最接近的十

发布于 2024-12-08 15:39:06 字数 183 浏览 0 评论 0原文

我正在寻找一个 QT 函数来将 qint64 类型的变量(整数)四舍五入到最接近的十。

例如: 1013 将四舍五入为 1010。 1019 将舍入为 1020

QT Assistant 似乎没有列出任何可以执行此操作的内置函数,但我可能找错了地方。

任何帮助将不胜感激。

谢谢, 韦斯

I'm looking for a QT function to round a variable (integer) of type qint64 to the nearest ten.

For example:
1013 would round to 1010.
1019 would round to 1020

QT Assistant doesn't seem to list any built in functions that would do this, but I could be looking in the wrong spot.

Any help would be appreciated.

Thanks,
Wes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

肥爪爪 2024-12-15 15:39:06

对于正数,您可以尝试这个老技巧,将负数的 + 替换为 - :

i_rounded = 10 * ((i + 5) / 10);

You may try this old trick for positive numbers, replace + with - for negative:

i_rounded = 10 * ((i + 5) / 10);
旧人九事 2024-12-15 15:39:06

使用整数(截断)数学来执行此操作的正常方法是 10*((n+5)/10)。当然,这是一个正数。

n = 17:
17 + 5 = 22
22 / 10 = 2    // integer math truncates
2 * 10 = 20

n = 12:
12 + 5 = 17
17 / 10 = 1
1 * 10 = 10

对于负数,加上负数 5。因此,公式实际上是 ...+sign(n)*5,其中,sign 根据数字的符号返回 -1、0 或 1。

The normal way to do this with integer (truncating) math is 10*((n+5)/10). That is for a positive number, of course.

n = 17:
17 + 5 = 22
22 / 10 = 2    // integer math truncates
2 * 10 = 20

n = 12:
12 + 5 = 17
17 / 10 = 1
1 * 10 = 10

For negative, add negative 5. So the formula is really …+sign(n)*5 where sign returns -1, 0, or 1 depending on the sign of the number.

森林迷了鹿 2024-12-15 15:39:06

我对 QT 不是很熟悉,但是

round(value/10)*10

它有什么用吗?

ps:如果 value 是整数,则在除法之前可能需要将其转换为 double。

I'm not a very familiar with QT but what about

round(value/10)*10

does it work?

p.s: if value is integer, it may need to be converted to double before division.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文