如何解决错误:参数类型“double?”不能分配给参数类型“num”
我正在尝试将一个单位值从一个转换为另一个。 (公斤 --> 克)作为。转换值时出现以下错误。
我在另一个页面有一张地图。如下
final Map<String,double> changes= {
"gram-kilogram": 0.01,"kilogram-gram": 1000,"kilogram-kilogram": 1,"gram-gram": 1,};
以及主页容器中的代码,
String _val1 = "Kilogram";
String _val2 = "Kilogram";
TextEditingController _controller1 = TextEditingController();
TextEditingController _controller2 = TextEditingController();
initState(){
super.initState();
_controller1=TextEditingController();
_controller2=TextEditingController();
}
dispose(){
super.dispose();
_controller1.dispose();
_controller2.dispose();
}
并且有 2 个文本字段和 2 个下拉按钮。
TextField(
controller: _controller1,onChanged: (text) {
if(text.isEmpty)
_controller2.text = "0.0";
else
_controller2.text = (double.parse(text)*changes[_val1+"-"+_val2]).toString();
},),DropdownButton<String>(
items: <DropdownMenuItem<String>>[
DropdownMenuItem(child: Text("Kilogram"),value: "Kilogram",onTap: () {
_val1 = _val1;
},DropdownMenuItem(child: Text("Gram"),value: "Gram",onTap: () {
_val1 = _val1;
},],onChanged: (value) {
setState(() {
this._val1 = value!;
});
},value: _val1,
我收到了主题中提到的错误。它发生在这一行。 _controller2.text = (double.parse(text)changes[_val1+"-"+_val2]).toString();
和帮助将不胜感激。
解决方法
您向 Map 声明了错误的值
Map<String,double> changes= new HashMap<>();
changes.put("gram-kilogram",0.01);
changes.put("kilogram-gram",1000);
changes.put("kilogram-kilogram",1);
changes.put("gram-gram",1);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。