全局设置stringstream的精度

rkb*_*rkb 6 c++ stringstream

我在我的整个项目中使用stringstream,它有30多个文件.我最近克服了一个由stringstring引起的问题,我将double解析为stringstream并且精度丢失了.所以现在我想为所有文件设置精度.有没有办法在全局范围内设置它,这样我就不需要在每个文件的每个地方进行更改.有人建议我看看它是否可以使用locale.

请帮我解决这个问题,如果你有代码或任何代码链接,它会更有用.

Pat*_*yer 7

可能最简单的方法是用您自己的继承自stringstream以下类的类替换您在整个程序中使用stringstream :

class mystringstream : public std::stringstream
{
public:
   mystringstream()
   {
      precision(16); // or whatever your desired precision is
   }
};
Run Code Online (Sandbox Code Playgroud)

precision方法在继承链中定义std::ios_base,并控制有效位数,或者如果fixed操纵器处于运行状态,则控制小数点后的位数.

有关更多示例代码和输出,请在键盘上看到此粘贴.