作者:雪天使杨果果 | 来源:互联网 | 2023-02-01 10:44
当货币值为零时,std :: put_money不会按预期输出'0'字符.我找不到任何解释这种行为的东西.
例:
#include
#include
using namespace std;
int main() {
cout.imbue(locale(""));
cout <
我希望输出为"£0.00"(取决于语言环境),但我得到"£.00"
最终,为零值添加一个特殊情况并不是太麻烦,但这种行为对我来说仍然没有意义.这是什么原因(假设它是故意的),除了单独处理零,还有任何简单的解决方法吗?
更新
这似乎是编译器特定的,我有报告说它与clang和VS一样正常工作,所以可能gcc/g ++具体(版本4.9准确,但其他版本似乎显示相同的行为)