Дротик - преобразование числа в двойное - PullRequest
0 голосов
/ 29 сентября 2019

Используя пакет Flutter FlutterRatingBarIndicator, мне нужно использовать double, чтобы определить рейтинг топора / 5.Используя другой пакет, flutter_google_places, если быть точным, я получаю значение num f.rating.

. С f.rating я смогу конвертировать из num в double, используя что-то вродеf.rating.toDouble() но это возвращает null.

Я не уверен, почему он возвращает null, поскольку f.rating.toString() возвращает ненулевое значение, такое как 3,5

Есть лиспециальный кастинг, который мне нужно применить, прежде чем num можно будет использовать в качестве значения double?

Спасибо

Редактировать;Как я получаю f.rating:

Используя flutter_google_places, я получаю rating как num значение от result:

  void getNearbyPlaces(LatLng center) async {
    final location = Location(lat, lng);
    final result = await _places.searchNearbyWithRadius(location, 2500, type: 'restaurant');

    setState(() {
      if (result.status == "OK") {
        this.places = result.results;
      }
      print(result.status);
      print(places.toString());
    });
  }

Это позже появляется как places.map:

  final placesWidget = places.map((f) {}).toList();

Наконец, это используется в flutter_rating_bar:

  FlutterRatingBarIndicator(
    rating: f.rating,
    itemCount: 5,
    itemSize: 15.0,
    emptyColor: Colors.amber.withAlpha(100),
    itemPadding: EdgeInsets.only(top: 2.5, bottom: 6),
  ),

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

num тип данных в dart может хранить двойные или целые значения,

вам не нужно преобразовывать его в double !!

0 голосов
/ 30 сентября 2019

Это не лучший способ обойти эту ошибку, но, насколько я понял, num должен поддерживаться double указанием параметров.Я не могу указать причину этой ошибки, поскольку я не написал / не совсем понял пакет google_maps_flutter.

Решение, которое я буду использовать, выглядит следующим образом ...

double drating = 0.0;

final placesWidget = places.map((f) {
   ...
   drating = f.rating.toDouble();
   ...
}).toList();

Я могу использовать drating как таковой ...

FlutterRatingBarIndicator(
   rating: drating,
   itemCount: 5,
   itemSize: 15.0,
   emptyColor: Colors.amber.withAlpha(100),
   itemPadding: EdgeInsets.only(top: 2.5, bottom: 6),
),
...