String s = "0.01";
double d = Double.parseDouble(s);
int i = (int) d;
Причиной исключения является то, что целое число не содержит рациональных чисел (= в основном дробей). Итак, попытка разобрать 0.3
на int - это вздор. Тип double
или float
может содержать рациональные числа.
Способ, которым Java передает double
в int
, выполняется , удаляя часть после десятичного разделителя округлением к нулю .
int i = (int) 0.9999;
i
будет нулевым.