gpt4 book ai didi

java - 需要 float 失败

转载 作者:行者123 更新时间:2023-11-30 07:49:59 25 4
gpt4 key购买 nike

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" }
...
}

我知道浮点相等性等等,但是 require 怎么可能在这里失败呢?我将如何纠正它?我想当旧版本发生崩溃时,Crashlytics 可能会报告新版本号,但无法确保版本号在 1..100 之间。

最佳答案

有一个currentProgressPercentage,你应该得到这个异常:NaN (它实际上不是一个单一的值,但这在这里并不重要)。两个比较都是错误的,(float) (100.0 * currentProgressPercentage) 将返回一个 NaN,它不在 0..100 范围内.可以生成 NaN,例如,通过计算 0.0/0.0

关于java - 需要 float 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48024473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com