Есть ли какой-либо способ в C++ (или увеличить lib), чтобы показать заданные цифры цифры части дроби? Но я не хочу печатать конечную 0 во фракционной части (например, 1.000
, 1.500
). Смотрите этот случай:C++ как показать точные цифры доли части
cout << std::setprecision(3) << 5.0/7.0 << endl; // 0.714
cout << std::setprecision(3) << 12.0/7.0 << endl; // 1.71
cout << std::setprecision(3) << 7.0/7.0 << endl; // 1
cout << std::setprecision(3) << 10.5/7.0 << endl; // 1.5
Проблема заключается в том setprecision
печатает линии 1 и линии 2 по-разному, где я хочу, чтобы обе линии печати 0.714
и 1.714
. И все еще держите линию 3 и линию 4 1
и 1.5
.
Использование флага фиксированной точности std :: fixed, чтобы получить точную 3-значную долю фракции, затем преобразовать ее в double/float и преобразовать ее обратно в строку, чтобы избавиться от конечного нуля, также может достичь цели. Но разве нет чистого способа сделать это? – Stan