Output of perldoc -q round

Does Perl have a round() function? What about ceil() and floor()? Trig functions?

Remember that int() merely truncates toward 0. For rounding to a certain number of digits, sprintf() or printf() is usually the easiest route.

    printf("%.3f", 3.1415926535);       # prints 3.142

The POSIX module (part of the standard Perl distribution) implements ceil(), floor(), and a number of other mathematical and trigonometric functions.

    use POSIX;
    $ceil   = ceil(3.5);                        # 4
    $floor  = floor(3.5);                       # 3

In 5.000 to 5.003 perls, trigonometry was done in the Math::Complex module. With 5.004, the Math::Trig module (part of the standard Perl distribution) implements the trigonometric functions. Internally it uses the Math::Complex module and some functions can break out from the real axis into the complex plane, for example the inverse sine of 2.

Rounding in financial applications can have serious implications, and the rounding method used should be specified precisely. In these cases, it probably pays not to trust whichever system rounding is being used by Perl, but to instead implement the rounding function you need yourself.

To see why, notice how you'll still have an issue on half-way-point alternation:

    for ($i = 0; $i < 1.01; $i += 0.05) { printf "%.1f ",$i}

    0.0 0.1 0.1 0.2 0.2 0.2 0.3 0.3 0.4 0.4 0.5 0.5 0.6 0.7 0.7
    0.8 0.8 0.9 0.9 1.0 1.0

Don't blame Perl. It's the same as in C. IEEE says we have to do this. Perl numbers whose absolute values are integers under 2**31 (on 32 bit machines) will work pretty much like mathematical integers. Other numbers are not guaranteed.



2010年10月20日 ... perl中所有的数字都是以浮点数存储的。 取整可以使用函数int( EXPR ); 注意: (int )(127.094)是不行的。 下面来自perldoc: int EXPR. int. Returns ...

How do you round a floating point number in Perl? - Stack Overflow


How can I round a decimal number (floating point) to the nearest integer? e.g. 1.2 = 1 1.7 = 2. Share.



2016年9月26日 ... 四舍五入round 向上取整POSIX::ceil 向下取整就是int或者POSIX::floor. 其中ceil和floor,要使用库POSIX,在perl源代码里加入 #!/usr/bin/perl use ...

Perl的数值和字符串- 骏马金龙- 博客园


2018年8月21日 ... 数值和字符串数值perl中以双精度(浮点数)方式保存和运算数值的方式就算写的是整数,在内部也会转换成等效的浮点数类型保存。 但在perl内部, ...

Perl Numbers


Perl integers. Integers are whole numbers that have no digits after the decimal points i.e 10 , -20 or 100 . In Perl, integers are often expressed as decimal ...

Perl_控制输出小数点位数_sprintf_BBka要黑化!-CSDN博客_perl ...


2012年4月20日 ... Perl_控制输出小数点位数_sprintf 例my $var=123.454789;$var=sprintf ... 一、前提整数小数,保留两位小数的正则表达式: 具体什么意思 ...

Perl小数转整数- 专否


Does Perl have a round() function? What about ceil() and floor()? Trig functions? Remember that int() merely truncates toward 0 . For rounding to a certain ...



perl中取整怎么做. 我来答. 首页 · 在问 · 全部问题 · 娱乐休闲 · 游戏 · 旅游 ... $int2 = int $f ; # 这个是直接打小数部分栽了 print "$int1 $int2"; # 4 3. 已赞过 已踩过<.

Rounding numbers in Perl


One of the ways how to round a number to few decimal places in Perl to use it sprintf("%.2f", $x) . The number in %.2f means how much you need to leave the digits ...

int - Perldoc Browser


The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via the Perl issue tracker, the mailing list, or IRC to ...

Perl 数据类型| 菜鸟教程


Perl 数据类型Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型。 Perl 有三 ... Perl 实际上把整数存在你的计算机中的浮点寄存器中,所以实际上被当作浮点数看待。 ... \L, 强制将所有的字符转换为小写.

sprintf - Perldoc Browser


Perl does its own sprintf formatting: it emulates the C function sprintf(3), but ... with the given number %s a string %d a signed integer, in decimal %u an ...

Recipe 2.3. Rounding Floating-Point Numbers


You want to round a floating-point value to a certain number of decimal places. ... Use the Perl function sprintf , or printf if you're just trying to produce output:

perlnumber - semantics of numbers and numeric operations in Perl ...


Storing numbers. Perl can internally represent numbers in 3 different ways: as native integers, as native floating point numbers, and as decimal strings. Decimal  ...