2013-06-04 2 views
0
public static String convertCentimeterToHeight(double d) { 
    double feetPart = 0; 
    double inchesPart = 0; 
    if (String.valueOf(d) != null && String.valueOf(d).trim().length() != 0) { 
     feetPart = (int) Math.floor((d/2.54)/12); 
     inchesPart = (int) Math.ceil((d/2.54) - (feetPart * 12)); 
    } 
    return (String.valueOf(feetPart)) + "' " + String.valueOf(inchesPart) + "''"; 
} 

Я пытаюсь удалить десятичные знаки, но я все еще получаю что-то вроде этого 5.0' 6.0". Когда мы делаем String.value() on a variable, он удаляет десятичные знаки и дает мне точный номер?Удаление десятичных знаков с цифр

+3

использование ints. почему вы используете парные блоки для хранения ints? – njzk2

+1

почему бы не использовать «литье»? – Juvanis

+0

согласитесь, почему бы вам не использовать Integer.parseInt? –

ответ

5

Как вы хотите сохранить int с в feetPart и inchesPart переменных, просто объявить их как int с:

int feetPart = 0; 
int inchesPart = 0; 

Тогда вы избежите их отображается в double с (т.е. с задней .0).

1

Вы можете бросить двойные переменные к Int

return (String.valueOf((int)feetPart)) + "' " + 
String.valueOf((int)inchesPart) + "''"; 

Это должно исправить его.

3

Вы можете просто отличить его в int.

(int) d; 
0

все ответы заменяют ваш тип переменной. мой способ сохраняет. только используйте эти коды, вы найдете волшебство.

double d = 1.0d; 
String s = String.format("%1$.0f", d); 
System.out.println(s); 
+0

вы можете сослаться на http://docs.oracle.com/javase/7/docs/api/index.html, чтобы узнать, как нам получить формат java. – BrookLeet

+0

также String.format будет обрабатывать исключение null или незаконное исключение автоматически. если вы используете TYPE CONVERSION, вы должны справиться с этим самостоятельно. это не удобно. – BrookLeet

+0

Вы используете молоток, чтобы расколоть гайку. Это сотни раз неэффективно, как простой '(int)' cast. – EJP

1

Для информации.

// always true, it never returns null 
String.valueOf(d) != null 
// always true, a double is never an empty string. 
String.valueOf(d).trim().length() != 0; 

// same as 
int feetPart = (int) (d/2.54/12); 
int inchesPart = ((int) (d/2.54)) % 12; 

// same as 
return feetPart + "' " + inchesPart + "\""; 
Смежные вопросы