我期待加快将一个双数映射到另一个双数的功能。但是该功能必须保持不变。相同的输入必须产生与以前完全相同的输出。其原因是我们不想在系统中引入任何差异,即使这个原始函数具有可疑的行为。寻找更快的方法做这个双重功能
功能是:
double g(double d)
{
std::stringstream ss;
ss.precision(10);
ss<<std::fixed<<d;
std::string asString;
ss >> asString;
return atof(asString.c_str());
}
功能看起来很慢。通过浏览字符串将double转换为另一个double看起来很奇怪。
_“功能看起来很慢。”_反对什么?任何措施和具体的形象? – 2014-12-04 20:52:05
那么这里是一个几乎相同的功能:double d = static_cast(nint(d * tenbillion))/ tenbillion但更快。 –
steviekm3
2014-12-04 20:52:48
比如'std :: epsilon'在指定精度内比较'double',或者如果在特定范围内操作,使用固定小数点值呢? – 2014-12-04 20:59:05