首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Perl中如何对浮点数进行舍入?

在Perl中如何对浮点数进行舍入?
EN

Stack Overflow用户
提问于 2008-10-07 13:52:28
回答 10查看 362.9K关注 0票数 186

如何将十进制数(浮点数)舍入为最接近的整数?

例如:

代码语言:javascript
复制
1.2 = 1
1.7 = 2
EN

回答 10

Stack Overflow用户

发布于 2008-10-07 13:54:10

您可以使用像Math::Round这样的模块

代码语言:javascript
复制
use Math::Round;
my $rounded = round( $float );

或者你可以用一种粗糙的方式:

代码语言:javascript
复制
my $rounded = sprintf "%.0f", $float;
票数 78
EN

Stack Overflow用户

发布于 2008-10-07 15:37:03

如果您决定使用printf或sprintf,请注意它们使用的是Round half to even方法。

代码语言:javascript
复制
foreach my $i ( 0.5, 1.5, 2.5, 3.5 ) {
    printf "$i -> %.0f\n", $i;
}
__END__
0.5 -> 0
1.5 -> 2
2.5 -> 2
3.5 -> 4
票数 47
EN

Stack Overflow用户

发布于 2014-09-12 22:13:38

下面将正数或负数四舍五入到给定的小数位:

代码语言:javascript
复制
sub round ()
{
    my ($x, $pow10) = @_;
    my $a = 10 ** $pow10;

    return (int($x / $a + (($x < 0) ? -0.5 : 0.5)) * $a);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/178539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档