On Mon, Nov 09, 2009 at 07:11:42PM +0300, mitrofanzzz wrote:
>
> Уважаемое сообщество разрешите вопрос.
> Есть такой вот КОД!
> $ cat zd46.c
> #include<stdio.h>
>
> main()
> {
> float radius;
> scanf ("%f", &radius);
> printf("%5.5f\n",radius);
> return(0);
> }
>
> Все просто и незамысловато. Но я так и не понимаю такого поведения:
> $ zd46.out
> 123.321
> 123.32100
Согласно формату два знака в конце добиты нулями.
> $ zd46.out
> 12345ю54321
> 12345.00000
scanf наткнулся на первую нецифру и остановился.
> $ zd46.out
> 12345.54321
> 12345.54297
Особенности формата хранения чисел с плавающей запятой не позволяют
точно передать все числа.
> $ zd46.out
> 12345.54321
> 12345.54297
См. выше.
> $ zd46.out
> 12345.543
> 12345.54297
См. выше.
> Подскажите пожалуйста, что я делаю не так?
Да вроде все так делаете. Ну разве что книжек умных мало читаете.
>
> --
> С уважением Сохин Никита Александрович...
>
--
Alexander Yurchenko