Я пытаюсь найти число цифр в длинном двойнике, которое не может содержать int.Он берет введенный пользователем номер, находит его цифры и помещает его в массив int.Кажется, что он отлично работает с меньшими числами, такими как <10 ^ 10, но когда он приближается к большим числам, последние несколько цифр, кажется, выключены.</p>
Посмотрите на мою функцию, пожалуйста:
static void insertDigits(int[] digits, double number) {
double num=number;
int counter=digits(number)-1;
while(counter>=0) {
digits[counter]=(int) (num%10);
num=Math.floor(num/10);
counter=counter-1;
}
}
Когда я ввожу 13256709, я получаю (хорошо): 1.3256709E7 1 1.3256709E7 3 1.3256709E7 2 1.3256709E7 5 1.3256709E7 6 1.3256709Е7 7 1.3256709E7 0 1.3256709E7 9 Но когда я ввести длинный номер, такой как 25768437216701562, я получаю: 2.576843721670156E16 2 2.576843721670156E16 5 2.576843721670156E16 7 2.576843721670156E16 6 2.576843721670156E16 8 2.576843721670156E16 4 2.576843721670156E16 3 2.576843721670156E16 7 2.576843721670156E16 2 2,576843721670156E16 1 2.576843721670156E16 6 2.576843721670156E16 7 2.576843721670156E16 0 2.576843721670156E16 1 2.576843721670156E16 5 2.576843721670156E16 6 2.576843721670156E16 0, как вы, можете считать.Был бы рад отправить больше кода, если это необходимо, если есть другая проблема с частью кода.Я чувствую, что это как-то связано с тем, что оператор по модулю фанк с двойниками.Спасибо за любую помощь!