C 将字符串转换为浮点
C++ Convert string to float
我正在尝试将基于字符串的数字转换为float。不幸的是,我要么获得舍入价值或截断值。我该如何修复。
std::string text = "199102.92";
float v = std::stof(text);
std::cout<<v<<std::endl;
这在19910年导致即使我使用setPrecision并修复了,它也只会影响输出流,但传递到浮点变量的值仍保留199103。我如何解决此问题。
我还使用了C 中的Stringstream,但结果似乎是相同的,只是它显示得很好。
我需要将十进制的最多保留到2个位置。
我已经使用了Stof,Stod,他们都做同样的事情。
您可以假设我正在使用货币。
我假设您不正确地使用std::setprecision
和std::fixed
。
以下对我有效的工作:
#include <iostream>
#include <iomanip>
#include <string>
string text = "199102.92";
float v = std::stof(text);
std::cout << std::setprecision(2) << std::fixed << v << std::endl;
结果是199102.92
编译器信息:G 5.4.0,-std = C 11。
相关文章:
- wcstombs_s(),转换字符串的长度
- 使用 CStringW/CStringA 和 CT2W/CT2A 转换字符串有什么区别?
- 无法转换字符串插入函数的参数
- 转换字符串向量:基于先前的值跳过元素
- 从中间器转换字符串不起作用,出了什么问题?
- 失败的证明转换字符串到枚举类
- 如何使用正则表达式和提升转换迭代器标记和转换 c 字符串
- 使用java jni时转换字符串类型
- 如何避免在转换字符串令牌流时重复istringstream构造
- 阿托伊未正确转换字符串
- C++,转换字符串,使连续下划线序列变为单个下划线
- 使用长算术转换字符串
- 转换字符串十进制数时的精度
- 将词法转换字符串提升为双精度
- 使用marshal_as函数转换字符串的性能
- C++不会从数据转换字符串
- 无论如何,在c++ /Qt中转换字符串到结构中的字段
- C++ 隐式类型转换字符串 -> int?
- 转换字符串到浮点数,c++实现
- 用于转换字符串大小写的函数