C++ 关于rint使用的问题

C++ 关于rint使用的问题,c++,C++,rinti/db的含义是什么?我不确定rint是如何使用的…这是对名为rint的函数的调用,在本例中是我除以db。这是对名为rint的函数的调用,在本例中是我除以db。是一个将浮点数舍入为整数的函数。这是一个非标准函数。如果db是整数类型,则i/db将截断为整数,代码将无法按预期工作。否则,rinti/db将四舍五入到最接近的整数 至于为什么这里需要舍入而不是截断,这在很大程度上取决于我们完全不知道的问题的背景。是一个将浮点数舍入为整数的函数。这是一个非标准函数。如果db是整数类型,则i/db将

rinti/db的含义是什么?我不确定rint是如何使用的…

这是对名为rint的函数的调用,在本例中是我除以db。

这是对名为rint的函数的调用,在本例中是我除以db。

是一个将浮点数舍入为整数的函数。这是一个非标准函数。如果db是整数类型,则i/db将截断为整数,代码将无法按预期工作。否则,rinti/db将四舍五入到最接近的整数

至于为什么这里需要舍入而不是截断,这在很大程度上取决于我们完全不知道的问题的背景。

是一个将浮点数舍入为整数的函数。这是一个非标准函数。如果db是整数类型,则i/db将截断为整数,代码将无法按预期工作。否则,rinti/db将四舍五入到最接近的整数

至于为什么这里需要舍入而不是截断很大程度上取决于我们完全不知道的问题的背景。

rint通过一些错误检查舍入到最接近的整数

这里真正发生的事情当然取决于i和db的类型。

rint通过一些错误检查,舍入到最接近的整数


<> P> >这里的情况是由I和DB的类型决定的。

RUNT是C99中指定的,所以它是标准的,但不是标准的C++ C++。因此,它不是标准的。我还有一些QN。。为什么当db为整数时,它将无法按预期工作。。顺便说一句,在我的代码中,i是int,db是double。@laksh:假设i是5,db是6。i/db为0整数除法只取整个部分,rint0为0。但你可能会认为5/6等于1。rint5/6.0是1。在用户814628提供的rint手册中,它说rint函数返回整数,表示为最接近x的双精度数字。双精度数字是什么意思?我不确定ABT。RUNT是在C99中指定的,所以它是标准的,但不是标准的C++。@拉斯曼:问题只标注了C++。因此,它不是标准的。我还有一些QN。。为什么当db为整数时,它将无法按预期工作。。顺便说一句,在我的代码中,i是int,db是double。@laksh:假设i是5,db是6。i/db为0整数除法只取整个部分,rint0为0。但你可能会认为5/6等于1。rint5/6.0是1。在用户814628提供的rint手册中,它说rint函数返回整数,表示为最接近x的双精度数字。双精度数字是什么意思?我不确定是不是?-1000不能回答第二部分我不确定rint是如何使用的。这很简单,当你需要一个地方住,但又不想拥有所说的地方时,rint就是你所做的。-1000不回答第二部分,我不知道rint是如何使用的。这很简单,当你需要一个地方住,但又不想拥有这个地方的时候,rint就是你所做的。
for(i = 0; i < 181; i++)
    {
       unsigned int index = rint(i/db);
        assert(index >= 0 && index < data.ranges_count);
      this->laser_ranges[i*2][0] = data.ranges[index] * 1e3;
    }