Tag: 浮点

要求失败,浮点数

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之间。

浮点数学是否被破坏?

0.1 + 0.2 == 0.3 -> false 0.1 + 0.2 -> 0.30000000000000004 为什么会这样呢?