C ++中的小数分隔符

时间:2016-03-01 13:44:51

标签: c++ decimalformat decimal-point

我遇到了以下问题,希望有人可以帮助我。我想使用一个我无法访问源代码的库。 (仅* .h)在此库中的某个函数中,读取ASCII文件。

  • 如果我在普通的main.cpp中使用此功能,一切正常。

Output: Test [-0.06 0.08 -0.02]*

  • 如果我链接我的大项目中的lib(许多外部库)并调用函数

Output: Test [-0 0 -0]

我认为我的大项目中的小数分隔符已更改。

如果我无法访问库的来源,任何想法如何解决这个问题?

我使用g ++ 4.8.1在C ++的Linux Ubuntu机器上编程。这是一个老同事的图书馆(已经联系了他的来源,但不知道他是否还有src)我只有静态库文件* .a和* h文件。

示例代码:

Mesh* vMesh = MeshLoader::load(file);
Vec3* toPrint  = vMesh->getVertex(4);
std::cout<<"Output: Test:"<<std::endl;
toPrint->print();

但是这段代码实际上什么都没说,因为我无法访问函数* .cpp代码

1 个答案:

答案 0 :(得分:1)

好吧,因为我无法看到源代码,我不得不猜测lib中使用的语言环境,然后切换回我的旧语言环境。不太好但是..

std::setlocale(LC_NUMERIC, "en_US"); //<-- guessed
...
std::setlocale(LC_NUMERIC, "de_DE"); //<-- my standard

Thx @numpunct和@Panagiotis Kanavos