gpt4 book ai didi

c++ - 如何将两个逗号放在一个 float 中?

转载 作者:行者123 更新时间:2023-11-28 01:49:43 27 4
gpt4 key购买 nike

我正在做一个大学项目,它需要 43,000,000 这样的大数字,但每次我启动该程序时,它都会给我类似 43000,000 的数字。我已经使用了 std::fixed 和 precision 但它没有添加第二个逗号。

这是代码:

double PreEnCol() {
if (marca == 1)
return (105.000*562);
else if (marca == 2)
return (65.000*562);
else if (marca == 3)
return (54.000*562);
else if (marca == 4)
return (125.000*562);
else if (marca == 5)
return (129.000*562);
else if (marca == 6)
return (85.900*562);
}

string toString(){
stringstream s;
s << endl;
s << std::fixed << std::setprecision(1) << "Precio en colones: "<<PreEnCol() << endl;
return s.str();
}

我需要这方面的帮助,我已经处理这个问题好几个小时了。

最佳答案

大多数情况下,您的输出取决于您的默认语言环境。您需要覆盖您感兴趣的整个语言环境或部分语言环境。

下面的代码可以帮助您覆盖负责在数字中打印逗号的语言环境部分。

#include <iostream>
#include <sstream>
#include <iomanip>
#include <locale>
struct Sep3Digit : std::numpunct<char> {
std::string do_grouping() const { return "\003"; }
};
std::string FormatWithCommas(double d)
{
std::stringstream ss;
ss.imbue(std::locale(std::cout.getloc(), new Sep3Digit));
ss << std::fixed << d;
return ss.str();
}

int main()
{
std::cout<<FormatWithCommas(std::numeric_limits<double>::max())<<std::endl;
return 0;
}

关于c++ - 如何将两个逗号放在一个 float 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43463451/

27 4 0