为什么atof将“ 14718.5084”舍入为14718.5?
有没有办法防止这种情况发生(即获取整数14718.5084)?

码:

double latitude=atof("14718.5084");
std::cout <<"latitude test "<<latitude<< "\n";


输出为:

latitude test 14718.5


谢谢

最佳答案

尝试下面的代码,看它是否完全符合您的要求:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
  char input [256];
  printf("Enter something: ");
  gets(input);
  printf("Result: %f\n", atof(input));
  return 0;
}


也许您在打印时丢失了数字...

尝试这个:

double latitude=atof("14718.5084");
std::cout.precision(9);
std::cout <<"latitude test "<< latitude << "\n";

关于c++ - 函数atof()将其结果四舍五入为整数部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9992211/

10-12 15:16