要求失败,浮点数
private void waveformProgress(double currentProgressPercentage) { if (currentProgressPercentage 1.0f) currentProgressPercentage = 1.0f; waveView.setProgress((float) (100.0 * currentProgressPercentage)); .. }
在调用kotlin setter函数时,我在setProgress行上发生了罕见的崩溃报告:
var progress: Float = 0F set(value) { require(value in 0..100) { "Progress must be in 0..100" } ... }
我知道浮点平等和所有,但在这里需求失败怎么可能? 我将如何纠正? 我猜想Crashlytics可能会在旧版本发生崩溃时报告新的版本号,但不能保证数字在1到100之间。
有一个currentProgressPercentage
你应该得到这个exception: NaN
(它实际上不是一个单一的值,但是这里没关系)。 这两个比较都是错误的, (float) (100.0 * currentProgressPercentage)
将返回一个不在范围0..100
内的NaN
。 NaN
可以例如通过计算0.0/0.0
来产生。