2016-01-30 4 views
1

Я знаю, что вы можете использовать setprecision (x), чтобы ограничить количество десятичных знаков, отображаемых в методе cout. Мне было интересно, как я могу объединить одну десятичную точку вверх/вниз?Как округлить до десятичной точки значение поплавка? C++

Например: У меня есть номер: 0,073

Я хочу округлить 7 вверх, даже если число после 7 равно 3. Таким образом, числа становится: 0,08

Я попытался с помощью потолка и пола , но это только округляет его до целого числа. У меня также есть потолок, и это округляется до целого числа.

+0

'std :: cout' - это не метод. Это объект. Вы используете 'setprecision (x)' для управления количеством десятичных знаков, отображаемых в установщике потока **, 'operator <<'. –

ответ

3

Две возможности , если у вас всегда есть номера этого порядка,

  • либо добавить 0.005 до округления
  • или умножить на 100, используйте и затем потолке разделить на 100.

Если у вас есть числа различных ордеров magnitute, используйте log10, чтобы найти порядок величины, а затем сделайте свое округление одним из методов выше.

+0

Обратите внимание, что обе опции предполагают, что вы знаете заранее количество десятичных знаков (два в этом случае), которые вы ищете в результате. – Peter

+0

У вас должен быть один способ узнать, где округлить, либо потому, что вы всегда хотите фиксированное число десятичных знаков, либо потому, что вы можете использовать некоторые вычисления, чтобы найти десятичное место, в которое вы хотите округлить, - обычно используя -ceil (log10 (число)) и, возможно, сложение или вычитание. – MortenSickel

 Смежные вопросы

  • Нет связанных вопросов^_^