簡體   English   中英

如何取消設置 std::cout 精度?

[英]How to unset std::cout precision?

cout.precision(m);

cout << "specified number of digits pi_float = " << a_0 << endl;

在我嘗試以double精度打印pi時的進一步計算中,僅打印m 位 如何取消設置std::cout.precision

通常,您只需在需要時將其設置為所需的任何內容,但如果您確實想恢復以前的設置,您可以像這樣保存並重新加載它:

std::streamsize prev_precision = std::cout.precision(); // save old precision
std::cout.precision(m);
// ... use the stream for whatever ...
std::cout.precision(prev_precision); // restore old precision

您也可以對其他格式設置(寬度、填充、科學記數法、boolalpha 等)執行此操作。

我有一個開源github 項目,如果您想要一個涵蓋所有內容的預打包解決方案(或者只是示例代碼),它可以使用 RAII 來做到這一點。

存儲它並恢復它

auto p = std::cout.precision(m); cout << "specified numbr of digits pi_float = " << a_0 << endl;
std::cout.precision(p);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM