Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
int和双等式,带Dart中的常量_Dart_Int_Constants_Double_Equality - Fatal编程技术网

int和双等式,带Dart中的常量

int和双等式,带Dart中的常量,dart,int,constants,double,equality,Dart,Int,Constants,Double,Equality,如果我这样做 final x=(2==2.0); 然后x为true 但如果我这样做了 constx=(2==2.0); 然后x为false 基于以下条件,我希望两者都是true: 如果一个操作数是double,另一个是int,那么如果double有一个整数值(有限,没有小数部分)并且相同(doubleValue.toInt(),intValue)为true,则它们相等 这里发生了什么事?听起来像个虫子。在这两种情况下都应该是true。我将在Dart存储库中提交一个问题。@lrn,谢谢。我猜在

如果我这样做

final x=(2==2.0);
然后
x
true

但如果我这样做了

constx=(2==2.0);
然后
x
false

基于以下条件,我希望两者都是
true

如果一个操作数是double,另一个是int,那么如果double有一个整数值(有限,没有小数部分)并且
相同(doubleValue.toInt(),intValue)
为true,则它们相等


这里发生了什么事?

听起来像个虫子。在这两种情况下都应该是
true
。我将在Dart存储库中提交一个问题。@lrn,谢谢。我猜在内部它与
doubleValue.toInt()
不是编译时常量有关。但是,在这种情况下,我希望编译器告诉我,我不允许对
const
值进行
int
double
比较。您要将
int
/
double
作为常量表达式进行比较。编译器知道整数和double的所有知识,所以它应该可以正常工作。在这里,它没有,这是一个应该被修复的错误。听起来像一个错误。在这两种情况下都应该是
true
。我将在Dart存储库中提交一个问题。@lrn,谢谢。我猜在内部它与
doubleValue.toInt()
不是编译时常量有关。但是,在这种情况下,我希望编译器告诉我,我不允许对
const
值进行
int
double
比较。您要将
int
/
double
作为常量表达式进行比较。编译器知道整数和double的所有知识,所以它应该可以正常工作。在这里,它没有,这是一个应该修复的错误。