函数atof()将其结果舍入为整数部分

use*_*106 0 c++ atof

为什么圆形"14718.5084"到14718.5?有没有办法防止这种情况(即得到整数14718.5084)?

码:

double latitude=atof("14718.5084");
std::cout <<"latitude test "<<latitude<< "\n";
Run Code Online (Sandbox Code Playgroud)

输出是:

latitude test 14718.5
Run Code Online (Sandbox Code Playgroud)

谢谢

HWe*_*nde 6

尝试使用此代码,看看它是否符合您的要求:

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

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

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

试试这个:

double latitude=atof("14718.5084");
std::cout.precision(9);
std::cout <<"latitude test "<< latitude << "\n";
Run Code Online (Sandbox Code Playgroud)