gpt4 book ai didi

c++ - 将字符串转换为以逗号分隔的 double 变量 (0,07)

转载 作者:太空狗 更新时间:2023-10-29 20:57:00 24 4
gpt4 key购买 nike

在 C++ 中,我有一个要读取的 double 变量,它由逗号 (0,07) 分隔。我首先从 excel 中读取一个字符串并尝试将其转换为 double 变量。

string str = "0,07"; // Actually from Excel.
double number = strtod(str .c_str(), NULL);
double number1 = atof(str .c_str());
cout << number<<endl;
cout <<number1<<endl;

它们都返回 0 作为输出而不是 0.07。有人可以向我解释如何将 double 转换为 0.07 而不是 0。

最佳答案

你可以为它定义一个自定义的数字方面(numpunct):

class My_punct : public std::numpunct<char> {
protected:
char do_decimal_point() const {return ',';}//comma
};

然后使用 stringstreamlocale与它:

stringstream ss("0,07");
locale loc(locale(), new My_punct);
ss.imbue(loc);
double d;
ss >> d;

DEMO

关于c++ - 将字符串转换为以逗号分隔的 double 变量 (0,07),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32013041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com