다음과 같은 작업을 수행하고자합니다. 주어진 float 번호가 1.0, 2.0, 3.0과 같은 경우 정수 (1,2,3)로 데이터베이스에 저장하려고합니다. 1.1, 2.1,, 3.44처럼 float로 저장합니다. 자바를 사용하여이 문제에 가장 적합한 솔루션은 무엇입니까? 데이터베이스의 해당 필드는 varchar 형식입니다.Java는 float를 정수로 변환합니다.
답변
그냥 시도하십시오 int i = (int) f;
.
편집 : 질문에 요점이 표시됩니다. 이 코드는 작동 할 수 있습니다 : 수가 정수입니다
int i = (int) f;
String valToStore = (i == f) ? String.valueOf(i) : String.valueOf(f);
이렇게하면 모든 float 값이 int로 변환됩니다. 원래 질문에서 묻지 않은 값입니다. –
어때요? float를 int로 변환합니다. 이것은 내가 원하는 것이 아닙니다. – Sawyer
실제로 이것은 잘 작동합니다 : 모든 float 값을 int로 변환하지 않습니다. float 값과 비교하기 위해 int 값을 "i"에 저장합니다. 동일하면 (즉 .0으로 끝나는 경우) "i"를 반환하고, 그렇지 않으면 원래 값을 문자열로 반환합니다. @Tony, valToStore는 String입니다. 이것은 당신이 요구 한 것입니다 ... – Philippe
String result = "0";
if (floatVar == Math.floor(floatVar)) {
result = Integer.toString((int) floatVar);
} else {
result = Float.toString(floatVar);
}
은 IF 절 여부를 체크한다 -는 가장 가까운 전체 값으로 내림의 결과와 동일한 경우 즉.
하지만 이것은 매우 이상한 요구 사항이며 아마도 그러한 일의 필요성을 재고해야합니다.
은 확실하지 않음이 가장 좋은 방법이지만,이 같은 방법을 쓰기를 시도 할 수 있습니다 : 중대한 후행 가진 사람을 저장하는 동안, 정수로 후행 숫자 수레를 저장할 같은
String convertToString(Float f) {
if (f.toString().endsWith(".0"))
return f.intValue().toString();
else
return f.toString();
}
가 보인다을 숫자는 수레로 나타납니다. , 그 후
Number oNumToSave = null;
if (isTrailingSignificant(fFloat))
{
// save float value as is
oNumToSave = fFloat;
}
else
{
// save as int
oNumToSave = fFloat.intValue();// drops trailing numbers
}
수행 할 수 있습니다
/**
* 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);
}
이이 방법을 사용하는 방법입니다 : 차라리 그냥 DB에 플로트로 모두를 절약 할 수 있지만, 그래서 여기에 질문 것은 내 대답 oNumToSave 변수를 사용하여 데이터베이스 조작을 수행하십시오.
- 1. float를 정수로 변환하는 방법?
- 2. NSString을 정수로 변환합니다.
- 3. 포인터 문자열을 정수로 변환합니다.
- 4. Java : 바이트를 정수로 변환합니다.
- 5. 와이어 값을 Verilog의 정수로 변환합니다.
- 6. iphone - 부동 소수점을 정수로 변환합니다.
- 7. Java는 16 진수 문자열을 BigInt로 변환합니다.
- 8. .wav 파일 읽기 : 리틀 엔디안과 빅 엔디안을 정수로 변환합니다.
- 9. 엠바 카데로 ER/Studio 실제 모델이 시리얼을 정수로 변환합니다.
- 10. 파이썬에서 float에서 정수로
- 11. 프롤로그에서 부동 소수점을 정수로 변환
- 12. Java는 지수 표기법으로 숫자를 분석합니다.
- 13. 레이블에서 정수로 정수로 변환
- 14. Java는 무료입니까?
- 15. CSS에서 float를 중심으로 정의합니다.
- 16. 함수는 float를 반환해야하지만 엉망이됩니다!
- 17. SQL FLOAT를 시간/분으로
- 18. float를 int로 변환하는 방법
- 19. TrackBar에서 float를 사용하는 방법
- 20. NSUserDefaults에 float를 저장하는 방법
- 21. Java는 어떻게 창을 띄웁니까?
- 22. Java는 "equals"구현에서 무엇을합니까?
- 23. webmin과 동일한 Java는 무엇입니까?
- 24. Java는 MS-SQL 쿼리
- 25. emacs의 java는 어떻게 되었습니까?
- 26. WCF에 해당하는 Java는 무엇입니까
- 27. SIP와 Java는 어디에서 시작해야할까요?
- 28. java는 정보를 어떻게 보내나요?
- 29. float를 전달하면 가비지 값이 발생합니다.
- 30. float를 쉼표와 점으로 문자열로 변환
이것은 정말로 혼란 스럽습니다. Float.toString (val)을 사용하는 방법을 묻고 있습니까? – Will
부동 소수점 숫자가 실제로 문제 도메인에 가장 적합합니까? 정밀도를 원하면 BigDecimal을 사용해야합니다. –