perl - Perl 中的简单加法导致结果偏离小部分
问题描述
#!/usr/bin/perl
$a = 1;
while ( $a <= 50 ) {
print "$a\n";
$a += 0.025;
}
非常简单的代码。
但这是输出的样子......
2.225
2.25
2.275
2.3
2.325
2.35
2.375
2.4
2.42499999999999
2.44999999999999
2.47499999999999
2.49999999999999
2.52499999999999
2.54999999999999
2.57499999999999
一切都很好,直到 2.42499999999999。
4.32499999999999
4.34999999999999
4.37499999999999
4.4
4.425
4.45
4.475
4.5
然后恢复正常。
它不断在人们所期望的和偏离一小部分之间交替。
这是什么原因造成的?
49.8249999999982
49.8499999999982
49.8749999999982
49.8999999999982
49.9249999999982
49.9499999999982
49.9749999999982
49.9999999999982
解决方案
推荐阅读
- amazon-cognito - AWS Cognito - 向用户重新发送验证链接
- javascript - 捕获日期时间控件的更改事件
- docker-compose - 使用 Docker-Compose 启动的容器无法相互连接
- r - 使用 combn 函数创建表并根据其组合标记每个表
- typescript - NestJS 测试:装饰器不是函数
- c# - 使用 C# 从不同语言的 JSON 文件中获取数据
- matlab - 在 MATLAB 中编写 PDE
- c# - 需要 Xamarin CollectionView 行为再次运行
- c++ - 最大积 C++
- php - 如何在 laravel 中使用路由名称从路由中获取 uri