我继承了一些代码(从离开的人那里),发现了这个小片段:

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());


谢谢。

最佳答案

没理由。这些三元运算符是多余的。
但是最好使用strtod代替atof-atof不会检测上溢和下溢错误。

关于c++ - 对整数使用atof,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22299152/

10-11 21:20