2017-02-08 2 views
-1
int number = 24.24; 

int afterDot = (int) (number*100)%100; 
afterDot = 24 

Эта логика является неправильным, еслиИзвлечение значения из числа после запятой в Java

int number1 = 24.4 

Как я могу получить 4 от 24,4?
Каким бы ни было число, но нужно извлечь значение после точки. На самом деле формула должна работать для обоих типов значений.

+1

Что * * является значение из число после точки? Это 24? 240? 2400? и т. д. –

+1

'int number = 24.24' не скомпилируется. Литеральный '24.24' является' double' и должен/должен быть назначен переменной 'double'. – Seelenvirtuose

+0

Вы можете - однако - [разделить «двойное» значение на все его и дробные части] (http://stackoverflow.com/questions/343584/how-do-i-get-whole-and-fractional-parts-from -двойная-в-JSP-Java). – Seelenvirtuose

ответ

0

Если преобразовать ваш double в строку, то проблема становится проще:

double number = 24.4; 
String numberAsString = String.valueOf(number); 
String decimalPart = numberAsString.split("\\.")[1]; 
System.out.println(decimalPart); 
int number1 = Integer.valueOf(decimalPart); // NOTE: This conversion is lossy. 
System.out.println(number1); 

Обратите внимание, что путем преобразования decimalPart строку (например, «001») в целое число (1), вы можете потерять некоторую информацию ,

С 24.4, он выводит:

4 
4 

С 24.001, он выводит:

001 
1 

С 3d, он выводит:

0 
0 
Смежные вопросы