C++ 货币格式C++;
因此,我试图创建一个程序,从用户那里获取一个值,并将其转换为货币格式(US:$)。我似乎快到了,唯一的问题是当我输入一个没有小数的值时,它不会用逗号格式化。我怎样才能更改他的函数,使其无论是否有小数点都能格式化C++ 货币格式C++;,c++,string,C++,String,因此,我试图创建一个程序,从用户那里获取一个值,并将其转换为货币格式(US:$)。我似乎快到了,唯一的问题是当我输入一个没有小数的值时,它不会用逗号格式化。我怎样才能更改他的函数,使其无论是否有小数点都能格式化 void dollarFormat(string ¤cy) { int decimal; decimal = currency.find('.'); // Find decimal point if (decimal > 3) // In
void dollarFormat(string ¤cy)
{
int decimal;
decimal = currency.find('.'); // Find decimal point
if (decimal > 3) // Insert commas
{
for (int x = decimal - 3; x > 0; x -= 3)
currency.insert(x, ",");
}
currency.insert(0, "$"); // Insert dollar sign
}
对以下各项进行测试:
旁注:要使代码可移植,请确保使用的是decimal
类型,而不是int
。或者,更好的方法是使用auto
类型推断:
auto decimal = currency.find('.');
我的教授一直声称使用“auto”关键字是一种渎职行为,应该避免使用?@ElSpiffy NO NO,再次否定。这是一个强烈建议使用
auto
的例子。这并不完全是渎职。询问她/他如何将lambda分配给变量,auto l=[](){std::cout好吧,对于这部分代码,我不会更改它,但每当我有另一个类时,我都会记住它。这位教授也非常反对使用std::方法。这就是为什么我在代码顶部使用名称空间std;。我如何将std::string::npos更改为我的教授可以接受的格式。@ElSpiffy我建议您切换t由于名称冲突、ADL问题和现实世界代码中的许多其他问题,通常不建议将课程交给不同的讲师;)使用名称空间std;
。关于std::string::npos
,只需使用string::npos
(如果您已经在使用名称空间std;
)。是否可以使此函数接受字符串数组?
auto decimal = currency.find('.');