【发布时间】:2019-02-06 16:27:58
【问题描述】:
我想在 std::string 中转换浮点值,即 3.14159267 我不想使用 sprintf
#include <iostream> // std::cout
#include <string> // std::string, std::to_string
int main ()
{
std::string pi = "pi is " + std::to_string(3.14159267);
std::cout<<pi<<std::endl;
return 0;
}
我得到的结果是 3.141593
【问题讨论】:
-
好吧,你不能。在浮点数和十进制表示之间转换时,您总是会丢失一些精度。
-
@freakish 不,如果你做对了,你就不会。
-
stringstream不会处理这个吗? -
Dup targ 无效,dup 是关于打印完整精度
double。这个问题清楚地打印出一个字符串,所以精度丢失是因为std::to_string,而不是std::cout。重新开放。 -
你可能不明白数字和它的表示之间的区别。你应该问自己“任意两个数字之间有多少个数字?”。
标签: c++