Как округлить двойное значение до двух десятичных знаков в дротике?

Я создал этот метод, который был вызван для выполнения функций и вычислений, но возвращал число в формате double для некоторых вычислений с точностью до более чем 10 десятичных знаков. Как я могу сделать так, чтобы этот код отображал только до 2 или 3 десятичных знаков?

getProductPrice(int productID) {
    var cart = cartlist.firstWhere((cart) => cart.product.id == productID,
        orElse: () => null);
    if (cart != null) {
      var price= (cart.count)*(cart.product.price);
      return price;
      notifyListeners();
    } else {
      return 0.0;
    }
  }

person Umair    schedule 06.11.2019    source источник
comment
см. double.toStringAs*() методы   -  person pskink    schedule 06.11.2019


Ответы (1)


Вы можете использовать String toStringAsFixed(int fractionDigits)

  • Возвращает строковое представление с десятичной запятой.

  • Преобразует this в двойное значение перед вычислением строкового представления.

  • Если абсолютное значение этого больше или равно 10 ^ 21, тогда этот метод возвращает экспоненциальное представление, вычисленное с помощью this.toStringAsExponential (). В противном случае результатом будет ближайшее строковое представление с точным числом разрядов дробной части после десятичной точки. Если FractionDigits равно 0, десятичная точка опускается.

  • Параметр FractionDigits должен быть целым числом, удовлетворяющим: 0 ‹= FractionDigits‹ = 20.

Примеры:

1.toStringAsFixed(3);  // 1.000
(4321.12345678).toStringAsFixed(3);  // 4321.123
(4321.12345678).toStringAsFixed(5);  // 4321.12346
123456789012345678901.toStringAsFixed(3);  // 123456789012345683968.000
1000000000000000000000.toStringAsFixed(3); // 1e+21
5.25.toStringAsFixed(0); // 5

Для получения дополнительной информации ознакомьтесь с официальной документацией.

person ibhavikmakwana    schedule 06.11.2019