flutter 检查num是否介于两个双精度值之间- Dart

ebdffaop  于 2022-11-25  发布在  Flutter
关注(0)|答案(2)|浏览(156)

如果你想知道一个int是否在两个数字之间,为什么不能这样做呢?

if (16.5 < value < 17.5)

而不是它,你必须做

if (value > 16.5 && value < 17.5)

这似乎有点开销。

bis0qfac

bis0qfac1#

简短回答

您可以使自己方法类似于

between(value, 1, 10);

长回答

您必须考虑编译器是如何工作的。
首先,他们有一种能读取编程语言解析器。
如果你写条件“if”,解析器读取“i”和“f”字符。2那么需要“(”符号。

if ( a > b )

检查值、检查符号、再次检查值和检查“)”符号。
然后程序知道这是一个条件语句。然后使机器码像01010101(idk.但我们不能读的东西)。
在这个公式中。最后比较值 是一个接一个(编译器将以尽可能小的单位工作)。
效率在这个阶段是非常重要的。回来你的代码。

if (16.5 < value < 17.5)

这个怎么样?

if (16.5 < value > 17.5)

怎么样?

if (16.5 > value < 17.5)

这是有很多例外情况。但是dart可能会做这个语法。但是他们不会。
因为他们也要做逐一比较的工作。
因此您可以创建自己方法。

odopli94

odopli942#

请尝试以下代码:

if (value.clamp(16.6, 17.4) == value) {
  // Do what you want to do
}

我认为.clamp函数是检查一个数字是否小于下限(16.6)或大于上限(17.4)或介于下限和上限之间。如果数字小于下限或大于上限,则显示下限或上限,否则显示数字(我通过在DartPad中测试知道)

相关问题