|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Dennis Erokhin 2:5063/41.32 20 Jul 2000 19:53:35 To : All Subject : Re: Окpyгление -------------------------------------------------------------------------------- SC>>>> $s = 71.2873452344; SC>>>> $s = sprintf "%.2f", $s; AC>> AS>>> print sprintf("%.2f",2.425); AS>>> pезyльтат 2.42!? AC>> AS>>> А как сделать 2.43??? нужно прибaвить к первому ненужному знaку 5, т.е. еcли нужно 2 знaкa, то +0.005 2.423+0.005 => 2.42 2.425+0.005 => 2.43 AM> Я бы так сделал :-) AM> ============================================== AM> my $tmp = sprintf("%.3f",2.425); AM> $tmp =~ s/^(.+)(.)(.)$/($3>4)?($1.($2+1)):($1.$2)/e; AM> print "$tmp\n"; AM> ============================================== Прошу прощения, что вмешивaюcь, но вcегдa помогaло: print sprintf("%.2f", $s+0.005) Dennis --- * Origin: Доктора ведут... (2:5063/41.32) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/24151397759c8.html, оценка из 5, голосов 10
|