private void waveformProgress(double currentProgressPercentage) {
if (currentProgressPercentage < 0.0f) currentProgressPercentage = 0.0f;
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之间。
答案 0 :(得分:3)
有一个http://my-api.com:8000${data.objects[i].content_url}
你应该得到这个例外:NaN
(它实际上不是单个值,但这并不重要)。两次比较都是错误的,currentProgressPercentage
将返回(float) (100.0 * currentProgressPercentage)
,而NaN
不在0..100
范围内。例如,可以通过计算NaN
来生成0.0/0.0
。