我有问题,但我不知道怎么解决。有人能帮帮我吗?问题。在文本文件中
1. 20.20
2. 3
我想从文件中获取数据,并使用它。我的代码:
int main()
{
string tp;
float data_1 = 0, data_2 = 0, total = 0;
std::fstream file;
file.open("text.txt", ios::in);
std::getline(file, tp);
data_1 = std::stof(tp);
std::getline(file, tp);
data_2 = std::stof(tp);
total = dat_1 * data_2;
cout << "Total: " << total << endl;
}
在程序总数不是60.60,但它是需要的。问题在哪里?
首先,dat_1
没有声明,它应该是data_1
。
然后,可以使用std::fixed
指定点后的位数,使用std::setprecision
指定位数。
cout << "Total: " << std::fixed << std::setprecision(2) << total << endl;
参考资料:
如果您确实希望打印60,60
,而不是60.60
,则可以使用std::replace
更改字符。
#include <iostream>
#include <string>
#include <iomanip>
#include <algorithm>
#include <sstream>
using std::ios;
using std::cout;
using std::endl;
int main(){
float total = 60.60;
std::stringstream ss;
ss << std::fixed << std::setprecision(2) << total << endl;
std::string str = ss.str();
std::replace(str.begin(), str.end(), '.', ',');
cout << "Total: " << str << endl;
}
#include <iostream>
#include <string>
#include <fstream>
int main(void)
{
std::string tp;
float data_1 = 0, data_2 = 0, total = 0;
std::ifstream file("text.txt");
std::getline(file, tp);
data_1 = std::stof(tp);
std::getline(file, tp);
data_2 = std::stof(tp);
total = data_1 * data_2; // you wrote dat_1 instead of data_1
std::cout << total << std::endl;
return (0);
}
我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字
问题内容: 正如标题所说。我不认为有可能这样做,但如果可以告诉我。 这是我正在编写的bukkit(minecraft服务器)插件所必需的。我要执行一个命令:tnt [power]。电源是我想转换为浮点数的返回字符串。 谢谢 问题答案: 用于进行转换。 和之间的区别只是回报。如果需要(对象),请使用前者;如果要数字,请使用后者。
问题内容: 我有一个标准化的浮点数数组(即数组中最大的数字是1),我想将其用作图形的颜色索引。在使用matplotlib使用灰度时,这需要使用0到1之间的字符串,因此我想将float数组转换为字符串数组。我试图通过使用“ astype(’str’)”来执行此操作,但这似乎会创建一些与原始值不相同(甚至接近)的值。 我注意到这一点是因为matplotlib抱怨在数组中找到数字8,这很奇怪,因为它被标
问题内容: http://golang.org/pkg/strconv/ http://play.golang.org/p/4VNRgW8WoB 如何将浮点数转换为字符串格式?这是google游乐场,但未获得预期的输出。(2e + 07)我想得到“ 21312421.213123” 请帮助我从浮点数中获取字符串。谢谢 问题答案: 试试这个 如果只想获得尽可能高的位数精度,则特殊精度-1使用所需的最
试图对这个问题中的各个数字求和。然而,当涉及负数时,函数就会分崩离析。这是因为当您使用toString()时,会将负号转换为NewStr中的值。例如,在本例中,newstr[0]==='-'。不管怎么说都是为了解决这个问题?最好使用Number()函数
我有一个csv文件包含一些浮点数据。代码很简单 然后我将其转换为float32以节省内存使用。 值刚刚更改!我如何保持数据不变? (我也尝试了,但是print仍然得到相同的输出)