Android - SharedPreference转换为Double

时间:2015-02-03 21:52:05

标签: android string double sharedpreferences

基本上我将值作为字符串保存到共享首选项中。

我正在检索保存的值,并尝试在计算中使用它。

我怎样才能将其转换为双倍而不是字符串?

在计算后检索到值后,新值将以相同的值保存回共享首选项。

我希望你能理解,一直遇到麻烦!

            SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
            String newweight =  sharedPreferences.getString("storednewweight", "");
            newweight = newweight + 5;
            //saves value into sharedpreference
            savePreferences("storednewweight", (Double.toString(newweight)));

3 个答案:

答案 0 :(得分:2)

你可以parse the string as a double

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

String weight =  sharedPreferences.getString("storednewweight", "");
Double newweight = Double.parseDouble(weight);
newweight = newweight + 5;

//saves value into sharedpreference
savePreferences("storednewweight", (Double.toString(newweight)));

答案 1 :(得分:0)

只要我把它写下来就可以保存:

Double to Long:

Double.doubleToRawLongBits(double);

长到两倍:

Double.longBitsToDouble(defaultLongValue);

修改

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Long newweightTemp =  sharedPreferences.getLong("storednewweight", 0L);
Double newWeight = Double.longBitsToDouble(newweightTemp );
newweight = newweight + 5;
//saves value into sharedpreference
sharedPreferences.edit().putLong("storednewweight", Double.doubleToRawLongBits(newWeight)).apply();

这样的事情应该这样做。

答案 2 :(得分:0)

  

我如何转换它,以便它被视为一个双而不是一个   字符串?

A)如果您不需要双精度,请使用浮点数:getFloatputFloat

B)Parse the string as a double然后再次save the double as a string