像 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/