flutter - dart中clamp函数的逻辑是什么?

标签 flutter dart

像 int、double、num 这样的数字类具有钳位功能。我试了一下,有一些结果..我猜它有一个逻辑

a = math.max(-1, math.min(1, a));

但是当我打印这段代码时,我得到了奇怪的结果
print(-100.43.clamp(-400.2, 64.2)); // -64.2

dart的clamp函数的算法是什么?

最佳答案

dart 的 Clamp 功能实际上是取数字而不是数字的符号

print(-100.43.clamp(-400.2, 64.2)); gives ->  -64.2
因为它只需要 ( -100 ) 作为 ( 100 ) 并且如果我们这样做 =>
100.clamp(-400,64.2) it gives -> 64.2
负数来了,最后变成了:-64.2
要检查这一点,你可以这样做:
print((-100.43 + 0).clamp(-400.2, 64.2))); // it will give: -100.43
或者
double value = -100;
print(value.clamp(-400.2, 64.2)));
所以你可以用它来防止这种行为。

关于flutter - dart中clamp函数的逻辑是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56970838/

相关文章:

flutter - 从 AppLifecycleState.resumed 事件导航到新屏幕?

dart - 如何使用flutter和alarmManager从后台代码启动ui?

dart - 如何将小部件构造函数作为参数传递给另一个要构建的小部件

flutter - 关于内存泄漏的 StreamSubscription.cancel 与 StreamController.close

ios - 如何在 flutter 的底部显示切出的字母

react-native - 使用 mobx 或 redux 还是使用存储库模式和持久本地存储领域或 sqlite?

dart - 如何在空安全 Dart 中将 List<String?> 转换为 List<String>?

dart - 如何将回调函数传递给 StreamController

Dart:如何仅将特定类型变量的变量标识符名称转换为字符串

flutter 。图像圆角边框不起作用