C: Сколько времени может двойное быть при печати через printf ()

(defun replace-nth-from-list  (list n elem)  
      (cond  
        ((null list) ())  
        (t (append (subseq list 0 n) elem (subseq list (+ 1 n)(length list))))))
5
задан Ross McFarlane 18 June 2009 в 13:52
поделиться

3 ответа

используйте printf ("%. 6g", doubleValue) или printf ("%. 6Lg", doubleValue)

Обратите внимание, что оставление ведущего цифры («ширина») в спецификаторе точности не требуют длины целой части значения.

Также обратите внимание, что нижний регистр «l» указывает, что ваше значение является длинным int. Заглавная буква «L» определяет длинное двойное значение.

Также обратите внимание, что если вы не хотите, чтобы это было потенциально изменено на научную нотацию (если это более короткое представление), вы должны использовать «f» вместо « g ".

См. ссылку на printf здесь .

6
ответ дан 14 December 2019 в 04:45
поделиться

Есть , содержащий много полезных значений, среди которых DECIMAL_DIG, который, однако, предназначен для long double .

Скорее всего, вам подскажет тот же файл. что double на вашей платформе имеет точность более 6 цифр ...

PS: Также обратите внимание на ответ Деми выше. Он указывает на различные недостатки вашей printf (), которые ускользнули от меня.

1
ответ дан 14 December 2019 в 04:45
поделиться

Максимальный показатель степени IEEE double равно 1023, поэтому наибольшее значение double будет 1 + 1/2 + 1/4 + 1/8 + ... и т. д. * 2 ^ 1023. Это будет примерно 318 знаков в десятичной системе счисления.

Почему бы не использовать букву «е»

1
ответ дан 14 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: