如何将十进制输入转换为 int?

How do I convert decimal input into an int?

我有一个 EditText 字段,用户可以在其中输入以公斤为单位的体重,即 11.7。我想将其作为克存储在数据库中,即 11700。

如何将字符串“11.7”转换为整数 11700?

我不确定它与 Android 有什么关系?

int grams = (int)(kg * 1000);

EditText

获取文本
EditText mEdit   = (EditText)findViewById(R.id.edittext);
double kg = Double.parseDouble(mEdit.getText().toString());

您必须将其解析为 int、long 或 double。 我想在你的情况下你可以这样做

double grams = Double.parseDouble("11.7") * 1000;

double variable_name = Double.parseDouble(string_name) * number_you_want_to_multiply_with;

这将给出双倍值。因此,您可以将其转换为整数、长整数或保持数据库中的原样。

要将 double 转换为 long,您可以这样做:

long value = (long)(grams);

希望对你有帮助,

要从 EditText 中获取值,请使用 http://developer.android.com/reference/android/widget/EditText.html#getText()

String userInput = editText.getText().toString();

要将字符串转换为双精度值,请使用@govindpatel http://developer.android.com/reference/java/lang/Double.html#parseDouble(java.lang.String)

中的代码
try {
    double kg = Double.parseDouble(userInput)
}
catch (NumberFormatException nfe) {
    editText.setError(R.string.invalid_double); // Or whatever you want to show the user
}

要从 KG 转换为 g:

long gramms = Math.round(kg * 1000);

如果您知道不需要较大变量的精度或范围,则可以将 double 和 long 替换为 float 和 int。