Dart - 将 num 转换为 double

Dart - Converting num to double

使用 Flutter 包 FlutterRatingBarIndicator,我需要使用 double 来确定 x/5 评级。使用另一个包,flutter_google_places 具体来说,我得到 numf.rating.

使用 f.rating,我应该可以使用 f.rating.toDouble() 之类的东西从 num 转换为 double,但这会返回 null

我不确定为什么它返回 null 作为 f.rating.toString() returns 非空值,例如 3.5

num 可以用作 double 值之前,我需要应用任何特殊转换吗?

谢谢

编辑;我如何得到 f.rating:

使用 flutter_google_places 我从 result 收到 rating 作为 num 值:

  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),
  ),

dart 中的 num 数据类型可以存储双精度或整数值,

您不必将其转换为双精度!!

这不是解决此错误的最佳方法,但据我所知,num 应由 double 指定参数支持。我无法确定导致此错误的原因,因为我没有 write/don 不完全理解 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),
),