C 将字符串转换为浮点

C++ Convert string to float

本文关键字:转换 字符串      更新时间:2023-10-16

我正在尝试将基于字符串的数字转换为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::setprecisionstd::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。