C++ 精度的损失
如果我有一个等于C++ 精度的损失,c++,c++11,c++14,precision,C++,C++11,C++14,Precision,如果我有一个等于“123.546123”的双精度字符串,并使用atof将其转换为双精度字符串,我只得到123.546。我能做些什么来解决这个问题 这是我的密码: #include <iostream> int main(){ std::string a = "123.546123"; double b = atof(a.c_str()); std::cout << a << std::endl; std::cout <
“123.546123”
的双精度字符串,并使用atof
将其转换为双精度字符串,我只得到123.546
。我能做些什么来解决这个问题
这是我的密码:
#include <iostream>
int main(){
std::string a = "123.546123";
double b = atof(a.c_str());
std::cout << a << std::endl;
std::cout << b << std::endl;
return EXIT_SUCCESS;
}
#包括
int main(){
std::string a=“123.546123”;
双b=atof(a.c_str());
std::coutstd::cout
默认打印精度为6的浮点值。要提高精度,请使用from
,例如:
std::cout << std::setprecision(9) << b << std::endl;
std::coutstd::cout
打印默认精度为6的浮点值。要提高精度,请使用from
,例如:
std::cout << std::setprecision(9) << b << std::endl;
std::cout您不会丢失精度,只是std::cout在默认情况下以低于您预期的特定精度打印双精度值。您不会丢失精度,只是std::cout在默认情况下以低于您预期的特定精度打印双精度值。