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的所有知识,所以它应该可以正常工作。在这里,它没有,这是一个应该修复的错误。