C++Cout将字符串转换为保留所有小数的十进制数
C++ Cout converted string to decimal number with keeping all the decimals
我遇到了一个无法轻松解决的小问题。我正在使用stod()将字符串转换为双精度,但它会给我一个四舍五入的十进制数(例如47.56164167会给47.5616)。我需要比4更多的十进制数。我是否可以调用另一个C++函数,将字符串转换为双精度,而无需执行任何其他操作?
好的,这是显示方法,而不是stod()函数。
在向输出流发送double或float之前,需要确保设置了输出流的精度。这将确保生成整个值。
#include <iostream>
#include <sstream>
#include <iomanip>
int main()
{
std::stringstream svalue("47.56164167");
double dvalue;
svalue >> dvalue;
std::cout << dvalue << std::endl;
std::cout << std::setprecision(10) << dvalue << std::endl;
}
这会输出以下
47.5616
47.56164167
请记住,double
不能表示所有数字,您可能会看到根据存储在其中的值进行一些舍入。
相关文章:
- visual在c++中将十进制数转换为二进制数
- C++从二进制转换为十进制数
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 将分数转换为十进制数并对其进行排序
- 使用标准库计算字符串中的十进制数
- (第 1 位 + 第 2 位)以十进制数表示
- 如何通过输入十进制数打印UTF-8符号?
- 如何使用链表将负十进制数转换为二进制?
- 二进制反转为十进制数
- 以C++格式将十六进制字符串转换为十进制数
- 如何在C++中使用setiosflags打印出十进制数作为八进制数
- 将字节数组转换为 C++ 中的十进制数
- 为什么如果(!(cin >> int)) 在第一次迭代中接受十进制数,但不接受其他十进制数?
- 在 c++ 中使用 setfill() 以特定格式打印十进制数
- 您能否给我一个 16 位(或更多)十进制数,该十进制数仅在第 15 位正确转换为双精度浮点圆
- 使用堆栈将十进制数转换为二进制数
- 如何确定十进制数的完美幂?
- 使用 for 循环更改二进制数>十进制数
- 将浮点数转换为字符串,并指定精度和十进制数字数?
- C++Cout将字符串转换为保留所有小数的十进制数