|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/652999e7428b.html, оценка из 5, голосов 10
|