Обрезать (не округлять) десятичные разряды в спринте? - PullRequest
5 голосов
/ 20 марта 2012

Я хочу отобразить значение в долларах с двумя цифрами после десятичной точки для обозначения центов.В приведенной ниже программе выход составляет 23,24.Perl округляет десятичные разряды.Как этого избежать.Я хочу, чтобы вывод был 23.23.

$val=23.2395;
$testa=sprintf("%.2f", $val);
print "\n$testa\n $val";

Ответы [ 2 ]

12 голосов
/ 20 марта 2012
print int(23.2395*100)/100;  # => 23.23
7 голосов
/ 20 марта 2012

Math :: Round имеет различные методы округления.

use Math::Round 'nlowmult';
print nlowmult( 0.01, 23.2395 ); # 23.23
...