【发布时间】:2017-05-09 07:13:30
【问题描述】:
字符串stored 中包含“1.0”。每次按下按钮时,我都想将其值增加0.5。但相反,我的输出变成了“1.00.5”。我该如何解决这个问题?
String stored = userspeed.getText().toString();
String speedplus = stored + 0.5;
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("user_speed", speedplus.toString());
editor.apply();
更新
public class ProgramActivity extends AppCompatActivity {
EditText userspeed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_program);
userspeed = (EditText) findViewById(R.id.userspeed);
//load values
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
String stored = preferences.getString("user_speed", "1.0");//default
userspeed.setText(stored, TextView.BufferType.EDITABLE);
}
public void adduserspeed(View view) {
String stored = userspeed.getText().toString();
double storedValue = Double.parseDouble(stored);
String speedplus = String.valueOf(storedValue +0.5f);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("user_speed", speedplus);
editor.apply();
}
}
【问题讨论】:
-
它不是
int。它是String,所以它会附加。使用int -
解析存储(即 1.0 作为浮点数并添加 0.5f)然后将其再次转换为字符串
-
是的,你可以像 Double.parseDouble(stored) + 0.5d 一样使用 double,请看下面我的回答
-
@user12345 只是想知道,为什么要在其中添加“f”?