java - 为什么我的表情给出了错误的答案?

标签 java android floating-point seekbar

在这种情况下,我的“f”值始终为 88 到 108,我需要将该值映射到我的搜索栏范围(0 到 200)

我在这里展示的表达式对于除了 if f=88.1,88.2,89.1;89.2.... 等之外的所有值都工作得很好

String value = b.getText().toString();

    float f= Float.parseFloat(value);


    int progress = (int) (f-(float)88.0)*10;
    s.setProgress( progress);

我在搜索栏中设置了进度,然后像这样取回了 f 的值,并设置了 TextView

float channel = (float) ((float)88.0 + ((float)progress/10));
            String mytext=Float.toString(channel);
            t.setText(mytext);

但是textview显示比我原来的值小0.1;例如,88.2 表示 f=88.1,88.1 表示 f=88.0,依此类推...

谁能帮我解决这个问题吗?

我得到了解决方案,并将其标记为正确,但有人能告诉我为什么会发生这种奇怪的事情吗?

最佳答案

您是否尝试过检查相反的情况。乘以 10,然后减去 880,看看问题是否仍然存在。

int progress = (int) ((f*10) - 880);

关于java - 为什么我的表情给出了错误的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12419826/

相关文章:

java - 是否可以将 spring.cloud.config.uri 与 docker run 命令一起传递?

android - 使用两个 .so 文件启动项目时崩溃

android - 如何在 Android 中创建日期和时间选择器?

android - GmsClient "calling connect() while still connected"暂停时

java - 为什么 Class.getSimpleName() 没有被缓存?

java - 如何在 Android Studio 中获得全屏 Activity

.net - Math.Round(double,decimal) 是否总是返回一致的结果

Python float 到字符串 : how to get '0.03' but '-.03'

c - 使用c构建 float

java - 缺少有关 Google Translation API 客户端问题的有效 API key ?