https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110749
Bug ID: 110749 Summary: wrong show float Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: alexsyrezerv at mail dot ru Target Milestone: --- Created attachment 55586 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55586&action=edit To try on different compillers Code: ``` #include <iostream> #include <iomanip> void func_float_point(std::ostream& os, const double& value, const std::size_t& size) { os << (0.0 > value ? '-' : '0') << std::setw(size - 1) << std::setfill('0') << std::abs(value); } int main(int, char**) { const double a[] = {90.8425, 101.9225}; for(std::size_t i = 0; i < 2; ++i){ func_float_point(std::cout, a[i], 17); std::cout << std::endl; } return 0; } ``` result ``` butiaev@butiaev-VirtualBox:~/tmp$ make bug g++ bug.cpp -o bug butiaev@butiaev-VirtualBox:~/tmp$ ./bug 000000000090.8425 0000000000101.922 butiaev@butiaev-VirtualBox:~/tmp$ ```