Я хочу сделать такую операцию: если заданные числа с плавающей запятой равны 1.0, 2.0, 3.0, я хочу сохранить их в базу данных как целое (1,2,3), если они как 1.1, 2.1, 3.44, я сохраняю их как float. Какое самое лучшее решение для этой проблемы с помощью java? Соответствующим полем в базе данных является тип varchar.Java convert float to integer
ответ
Попробуйте int i = (int) f;
.
EDIT: Я вижу точку в вопросе. Этот код может работать:
int i = (int) f;
String valToStore = (i == f) ? String.valueOf(i) : String.valueOf(f);
. Это преобразует все значения float в ints, что не совсем то, что задавал оригинальный вопрос. – 2010-02-02 09:24:06
как насчет струны, чувак? вы конвертируете float в int. это не то, что я хочу. – Sawyer
На самом деле это отлично работает: оно не преобразует все значения float в ints. Он сохраняет значение int в «i» только для сравнения со значением float. Если это то же самое (т. Е. Заканчивается на .0), тогда он возвращает «i», иначе возвращается исходное значение в виде строки ... @Tony, valToStore - это строка. Это то, о чем вы просили ... – Philippe
String result = "0";
if (floatVar == Math.floor(floatVar)) {
result = Integer.toString((int) floatVar);
} else {
result = Float.toString(floatVar);
}
КРП-п проверяет, является ли число является целым числом - то есть, если она равна результату округления вниз до ближайшего целого значения.
Но это очень странное требование, и, возможно, вам следует пересмотреть необходимость в такой вещи.
Не уверен, что это лучшее решение, но вы можете попробовать написать метод, как это:
String convertToString(Float f) {
if (f.toString().endsWith(".0"))
return f.intValue().toString();
else
return f.toString();
}
Похоже, что вы хотите сохранить Поплавки без каких-либо чисел хвостовых как Целые, при сохранении тех, со значительным завершающего числа как плавающие. Я предпочел бы просто сохранить все это, как 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.
- 1. smarty convert string to Integer/Float
- 2. Convert/Quantize Float Range to Integer Диапазон
- 3. convert integer to Days
- 4. Convert boolean to integer
- 5. convert PyFloatObject to float
- 6. Convert textbox.text to float
- 7. Convert Float to Int
- 8. Convert double * to float *
- 9. Java-Convert String Value to Integer
- 10. Convert Integer [] to Long [] в Java
- 11. java programming (convert from integer to string)
- 12. java split() метод convert String to Integer
- 13. Float To Integer Casting?
- 14. convert boost :: multiprecision integer to builtin float type (double)
- 15. csv file convert integer to float with applescript
- 16. Python: convert str to integer
- 17. Python convert Tuple to Integer
- 18. Convert Pandas TimeDelta to integer
- 19. Convert Integer [] to int [] array
- 20. CLIPS: convert boolean to integer
- 21. Ada - Convert File_Size to Integer
- 22. Convert User input to integer
- 23. Python convert integer to date
- 24. Ruby: Convert String to Float
- 25. convert qtablewidget item to float
- 26. mysql convert float to double
- 27. Convert float 27.7 to 27.70
- 28. class sympy.core.add.Add convert to float
- 29. Talend Convert string to Float
- 30. cuda kernel convert integer to const char *
Это действительно сбивает с толку; вы спрашиваете, как использовать Float.toString (val)? – Will
Вы уверены, что числа с плавающей запятой действительно подходят для вашей проблемной области? Если вам нужна точность, вы должны использовать BigDecimal –