我想将基于字符串的数字转换为浮点数。不幸的是,我得到的是舍入值或截断值。我怎样才能解决这个问题。C++将字符串转换为浮点数
std::string text = "199102.92";
float v = std::stof(text);
std::cout<<v<<std::endl;
这导致199103 即使我使用setprecision和固定的,那么它只会影响输出流,但传递到浮点型变量的值保持199103.我如何可以诉诸这个问题。
我也使用C++中的stringstream,但结果似乎是相同的,除非它显示良好。
我需要保留小数达2位。
我已经使用stof,stod,他们都做同样的事情。
您可能会认为我正在使用货币。
std :: stof()使用当前语言环境确定用作小数点的字符。也许在你的语言环境中,它不是点,而是例如逗号? – Rene