2008-10-11 1 views
1

Когда я даю Java и C большие поплавки и удваивает (в миллиардном диапазоне), они преобразуют их в научную нотацию, теряя точность в процессе. Как я могу остановить это поведение?Как я могу предотвратить поплавки и удвоения от усечения в Java и C?

+0

Вы пытались передать их как строки? Они останутся неизменными. – 2015-10-19 16:36:15

ответ

8

Преобразование в научной нотации является чисто эффект, как она отображается. Изменение отображения зависит от того, как вы его выводите (спецификаторы формата)

Поплавки обычно имеют около 6 цифр точности, что сделало бы их неуместными для хранения числа в миллиардах. У парного разряда около 15 цифр точности, поэтому он должен иметь возможность правильно держать цифры за триллионы с полной точностью.

Для отображения двойной в C:

printf("%10f", dbl); 
Смежные вопросы