사용자가 문자열을 입력,이 떠있는 곳 변환, 당신은 플로트를 확인하려고합니다. 그렇게 할 수는 없습니다.
float의 문자열 표현은 사람의 인공물입니다. 게다가, float은 변환 된 String의 값을 근사치로 (매우 가깝게) 만 경향이 있습니다.
정밀도를 검증하려면 유일한 방법은 사용자 입력 문자열의 유효성을 검사하는 것입니다. 정밀도를 유지하려면 문자열처럼 저장하십시오.
에이 필요하면 숫자를 계산하십시오 (예 : BigDecimal). 주어진 정확도를 유지하도록 설계되었습니다 (재무 계산에 중요). 그것들은 입니다. 매우 좋은과 작동하지만, 정확한 비 정수 값을 원한다면 지불해야하는 가격입니다.
편집
을 BigDecimal을 사용하는 방법.
BigDecimal b1 = new BigDecimal("1234.23");
System.out.println(b1 + " scale was " + b1.scale()); 2
BigDecimal b2 = new BigDecimal("1234.523536223");
System.out.println(b2 + " scale was " + b2.scale()); // 9
눈금을 사용하여 "정밀도"를 테스트 할 수 있습니다. b1.scale() == 2 || b1.scale() == 3 => 유효합니다.
나는 그 규칙이 의미가 있거나 "정밀도"라는 단어의 일반적인 사용을 반영한다고 주장하지는 않지만 [100 * x]가 [10000, 100000] 범위의 정수가되게하려는 것 같습니다. . –
문자열을 가져 가고 있습니까? 왜냐하면 이미 플로트가 있다면 당신은 망했다. – NullUserException
[무엇을 시도해 봤습니까?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) –