【发布时间】:2014-02-28 19:39:36
【问题描述】:
如何从双值中获取货币格式?以下 sn-p 适用于整数,但不适用于双精度数?!
#include <locale.h>
#include <iostream>
#include <iomanip>
#include <sstream>
using namespace std;
int main(void)
{
ostringstream stream;
stream.imbue(std::locale(""));
stream << setprecision(3) <<194663.33;
string stringValue = stream.str();
cout << stringValue;
return 0;
}
【问题讨论】:
-
我使用的是 M$ Visual Studio 2012,而在 Linux 下使用 gcc 并没有遇到这个问题(我使用了
sprintf(buffer, WString("%'.3f")) -
你怎么知道它不适用于
double?您能否向我们展示使用int和double的输出以及您的预期? -
你不应该用二进制浮点数表示货币值
-
for:194663.33 我得到了
1.95e+005for:194663 我得到了194,663 -
@DieterLücking 不幸的是我必须使用双打