2014-10-17 1 views
-2

textview 안에있는 번호를 아래의 예와 같이 만드는 방법이 있습니까?1,293.34가 안드로이드의 textview에서 129.33이되게하는 방법?

input > output: 

123.23 -> 12.32 

4,593.78 -> 459.37 

그것은 숫자가 거꾸로 계산기 버튼과 같은 백 스페이스 기능 (앞으로

내가이

// Get edit text characters 
String textInBox = atmdisplay.getText().toString(); 
if(textInBox.length() > 0) 
{ 
    //Remove last character// 
    String newText = textInBox.substring(0, textInBox.length()-1); 
    // Update edit text 
    atmdisplay.setText(newText); 
} 
      } 

같은 샘플 코드를 시도 juz 마지막 숫자를 삭제하고 소수점을 이동입니다 마지막 자릿수에서 시작하여 전체 자릿수를 하나씩 삭제합니다.

+2

나누어 10 진수 – therealprashant

답변

3

으로 입력하십시오.값. 그런 다음 10에서 나누고 결과의 서식을 지정하십시오.

예 :

double val = 4593.78 ; 
double result = val/10; 
DecimalFormat df = new DecimalFormat("#.##"); 
df.setRoundingMode(RoundingMode.DOWN); 
System.out.println(df.format(result)); 

아웃 넣어 : 유 두 소수점을 원하기 때문에 당신은 단순히 10로 나눌 수 있습니다

459.37 
+0

후 2 자리 개까지 서식 번호를 사용 그것은 것이다 12.32을'로 출력 '과'459.38'. 실제로 마지막 하나는'459.37'이었습니다. –

+0

@BatuhanC 확인. 편집 된 솔루션을 확인하십시오. 그것도 주소가 있습니다. –

-2

. 그런 다음 * 100을 반올림 한 다음 나눕니다.

double d=123.23; 
d=d/10; 
double out= (double) Math.round(d*100)/100; 
System.out.println(out); 
+1

적어도 컴파일되지 않습니다. 실제로 무엇을 할 건데? 'Math.round()'는'long' 값을 반환합니다. 여기에 게시하기 전에 코드를 직접 사용해보십시오. –

+1

여기에서 아이처럼 행동하지 마십시오. 전문가처럼 행동하십시오. 귀하의 의견은 건설적이지 않습니다. –

+0

'stackoverflow'는 전문 커뮤니티입니다. Dump의 facebook 종류가 아니다. 그리고 당신의 대답은 여전히 ​​틀립니다. –

0

아니요. 질문이 없으면 TextView 내부에는 그러한 메소드가 없습니다. 당신은 그것을 할 자신 만의 방법을 만들 수 있습니다, 같은 : 여기

public String roundOff(float value){ 
    long factor = (long) Math.pow(10, 2); 
    value = value * factor; 
    long temp = Math.round(value); 
    double result = (double) temp/factor; 
    return ""+result; 
} 

하면 다음 방법을 사용하는 방법입니다 -> textView.setText (반올림 (123.23)); Ruchira의 솔루션을 사용하여 다음

double oldValue = 0.0; 
String textInBox = atmdisplay.getText().toString(); 
if(!textInBox == null || !textInBox.isEmpty()) 
    oldValue = Double.parseDouble(textInBox); 

을 :

0

는이 두 배로 당신의 EditText 값을 변환

double newValue = oldValue/10; 
DecimalFormat df = new DecimalFormat("#.##"); 
df.setRoundingMode(RoundingMode.DOWN); 
atmdisplay.setText(df.format(newValue)); 
관련 문제