Похоже, что вы хотите сохранить числа с плавающей точкой без конечных чисел в виде целых чисел, при этом сохраняя числа со значительными конечными числами как числа с плавающей точкой Я бы предпочел просто сохранить все как Float на БД, но это ваш вопрос, так вот мой ответ:
/**
* Method to determine if trailing numbers are significant or not. Significant
* here means larger than 0
*
* @param fFloat
* @return
*/
public static boolean isTrailingSignificant(Float fFloat)
{
int iConvertedFloat = fFloat.intValue();// this drops trailing numbers
// checks if difference is 0
return ((fFloat - iConvertedFloat) > 0);
}
Вот как бы вы использовали этот метод:
Number oNumToSave = null;
if (isTrailingSignificant(fFloat))
{
// save float value as is
oNumToSave = fFloat;
}
else
{
// save as int
oNumToSave = fFloat.intValue();// drops trailing numbers
}
После этого вы можете выполнить операцию с базой данных, используя переменную oNumToSave.