показать 2 десятичных разряда без округления в c ++ [дубликат]

Да, вы можете добавлять методы расширения в structs. В соответствии с определением метода расширения вы можете легко достичь этого. Ниже приведен пример метода расширения в int

  namespace ExtensionMethods {public static class IntExtensions {public static bool IsGreaterEqualThan (это значение int i, int) {return i & gt; = value;  }}}  
4
задан ApproachingDarknessFish 4 November 2013 в 01:00
поделиться

2 ответа

Если вы хотите усечь значение до двух знаков после запятой, вы можете умножить его на 100, усечь на целое, а затем разделить на 100, например:

c = a / b;
c = floor(100 * c) / 100;
cout<<"Result: "<<fixed<<setprecision(2)<<c<<endl;

Демоверсия на идеоне.

6
ответ дан dasblinkenlight 15 August 2018 в 21:23
поделиться
  • 1
    какая библиотека имеет trunc, потому что у меня есть cmath в сравнении с 2012 годом, и она не принимает ее – user2529011 4 November 2013 в 01:03
  • 2
    @ user2529011 Это <cmath> (см. демонстрацию, я добавил для нее #include). – dasblinkenlight 4 November 2013 в 01:03
  • 3
    Я сделал, и он все еще не принимает его – user2529011 4 November 2013 в 01:05
  • 4
    @ user2529011 Какую ошибку вы получаете? – dasblinkenlight 4 November 2013 в 01:06
  • 5
    @ user2529011 А, я вижу, std::trunc был добавлен в C ++ 11, а VS 2012 - не C ++ 11. Вам нужно заменить его на floor (отредактировано и изменено демо). – dasblinkenlight 4 November 2013 в 01:07

Вы можете использовать trunc для усечения до определенного количества цифр:

c = a / b;

// truncate past two decimals:
c = trunc(c * 100) / 100;

cout<<"Result: "<<fixed<<setprecision(2)<<c<<endl;

для общей функции:

int trunc(double val, int digits)
{
    double pow10 = pow(10,digits);
    return trunc(val * pow10) / pow10;
}

, затем используйте

cout << "Result: " << fixed << setprecision(2) << trunc(c,2) << endl;
2
ответ дан D Stanley 15 August 2018 в 21:23
поделиться
  • 1
    какая библиотека имеет trunc, потому что у меня есть cmath в сравнении с 2012 годом, и она не принимает ее – user2529011 4 November 2013 в 01:03
  • 2
    Или вы можете отбрасывать double до int без использования метода trunc. – RusI 22 February 2018 в 12:35
Другие вопросы по тегам:

Похожие вопросы: