この状態では、'f'値は常に88から108になり、その値を0から200のシークバー範囲にマップする必要があります。
ここに示す私の式は、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の値が返され、テキストビューが設定されます。
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などです。
誰かが私がこれを解決するのを手伝ってくれる?
私は解決策を手に入れ、それを正しいとマークしましたが、なぜその奇妙なことが起こったのか誰かに教えてもらえますか?