问题是:我有大量的浮点数(双 64 位),对于每个数字,我将保留 6 个数字。
比如原来的号码是231.123456789,经过处理应该是231.123457。
我已经实现了这个功能,但运行速度很慢。有没有更快的算法。也许它可以利用 SSE 的优势,或者基于一些深层次的东西,我的意思是它可以反映浮点数的本质,而不是像我表面的实现(下)。
void Round6(double& dVal)
{
dVal *= 1000000;
dVal += 0.5;
dVal = floor(dVal);
dVal /= 1000000;
}