是'int'类型不是'double'类型的子类型吗?

我仍然在学习颤动,并且遇到了一个非常奇怪的错误,却仍然不明白为什么要这么做。这是我的档案

class _LocationScreenState extends State<LocationScreen> {
  WeatherModel weather = WeatherModel();
  int temperature;
  String weatherIcon;
  String cityName;
  String weatherMessage;

  @override
  void initState() {
    super.initState();
    updateUI(widget.locationWeather);
  }

  void updateUI(dynamic weatherData) {
    setState(() {
      if (weatherData == null) {
        temperature = 0;
        weatherIcon = 'Error';
        weatherMessage = 'Unable to get weather data';
        cityName = '';
        return;
      }
      double temp = weatherData['main']['temp'];
      temperature = temp.toInt();
      var condition = weatherData['weather'][0]['id'];
      weatherIcon = weather.getWeatherIcon(condition);
      weatherMessage = weather.getMessage(temperature);
      cityName = weatherData['name'];
    });
  }

错误是“类型'int'不是类型'double'的子类型。 我想了解为什么会出现此错误。

评论
拜托说爱我
拜托说爱我

如错误所说

类型“ int”不是类型“ double”的子类型

那是因为您要在double类型的变量中存储int类型的数据,因此请尝试以下代码

double temp = weatherData['main']['temp'].toDouble();
点赞
评论