Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Sergey Solyanik                      2:5020/400     24 Oct 2001  12:19:59
 To : All
 Subject : А как отето происходит такое?
 -------------------------------------------------------------------------------- 
 
 Приветствую!
 
 Вот есть программка:
 
 #!/usr/bin/perl -w
 #
 use strict;
 
 my $be1 = 1.2;
 my $be2 = 1.45678;
 my $be3 = 1.9999999999999999999999999999;
 my $be4 = 0.1234567812345678;
 
 print("print:\n");
 print("$be1\n");
 print("$be2\n");
 print("$be3\n");
 print("$be4\n");
 
 print("printf:\n");
 printf("%.32f\n", $be1);
 printf("%.32f\n", $be2);
 printf("%.32f\n", $be3);
 printf("%.32f\n", $be4);
 При запуске она выдает соответственно:
 
 solik@solikus$ ./test
 print:
 1.2
 1.45678
 2
 0.123456781234568
 printf:
 1.19999999999999995559107901499374
 1.45677999999999996383337474981090
 2.00000000000000000000000000000000
 0.12345678123456779728961407727184
 solik@solikus$ 
 То, что 1.9999999999999999999999999999 в 2 превращается - ясно.
 Проблема в том, откуда %.32f берет лишние цифры
  - по той же причиние, или это просто глюк?
 
 -- 
  Le vere' en la cara oscura de la luna...
 --- ifmail v.2.15dev5
  * Origin: Fort Ochka, XY (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 А как отето происходит такое?   Sergey Solyanik   24 Oct 2001 12:19:59 
 Re: А как отето происходит такое?   Alexander Babanov   25 Oct 2001 05:21:24 
Архивное /ru.perl/652999e7428b.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional