Dart - 将 num 转换为 double
Dart - Converting num to double
使用 Flutter 包 FlutterRatingBarIndicator
,我需要使用 double
来确定 x/5 评级。使用另一个包,flutter_google_places
具体来说,我得到 num
值 f.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),
),
使用 Flutter 包 FlutterRatingBarIndicator
,我需要使用 double
来确定 x/5 评级。使用另一个包,flutter_google_places
具体来说,我得到 num
值 f.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),
),