我继承了一些代码(从一个已经离开的人那里),并找到了这个小片段:
double minX = xVal.find('.') == string::npos ? (double)atoi(xVal.c_str()) : atof(xVal.c_str());
double minY = yVal.find('.') == string::npos ? (double)atoi(yVal.c_str()) : atof(yVal.c_str());他为什么选择使用atoi作为整数类型有什么原因吗?我看不出有什么问题:
double minX = atof(xVal.c_str());
double minY = atof(yVal.c_str());谢谢。
发布于 2014-03-10 11:49:41
没什么原因。这些三元操作符是额外的。但是它更好地使用史托德而不是- atof不会检测溢出和下溢错误。
发布于 2014-03-10 11:47:58
你真的不应该使用atoi或atof。它们都已被strtol和strtof所取代。
发布于 2014-03-10 11:50:24
他的代码是: double minX = (double)atoi(xVal.c_str());
然后,他发现浮点存在,并在没有考虑的情况下修改了代码。
https://stackoverflow.com/questions/22299152
复制相似问题