Я хотел бы обрезать поплавок до 4 цифр. Есть ли эффективный способ сделать это? Мое текущее решение:C++: как эффективно усекать двойной?
double roundDBL(double d,unsigned int p=4)
{
unsigned int fac=pow(10,p);
double facinv=1.0/static_cast<double>(fac);
double x=static_cast<unsigned int>(d*fac)*facinv;
return x;
}
но с использованием pow
и удаления, мне кажется, не так эффективно.
вид с уважением
Arman.
Вам действительно нужно усечь значение, а не его отображение? Вы не сможете получить точное значение, скажем, 0,0001. –
Мне нужно усечь его, я буду использовать его для расчетов не только для отображения. – Arman
Вы имели в виду 'double x = static_cast (d * fac) * facinv;'? –