【发布时间】:2015-07-18 20:30:54
【问题描述】:
我发现 tons 和 tons 的信息关于通过使用 'scale' 与 BC 和 '%.xf' 将浮点数舍入到特定的小数位数使用 printf,但是如果我使用的数字并不总是具有如下所示的相同格式,有没有办法将它四舍五入到小数点后第一个不为零的位?
例如,假设我有一个这样的数字列表:
0.0008234535225
0.00547889294
0.000003243322
有没有办法让我把它们转换成这样的东西?:
0.0008
0.005
0.000003
我遇到的每个 Google 结果都在讨论四舍五入到特定位数而不是第一个有效数字,而且我在从搜索结果中过滤它们方面没有取得太大成功,所以它正在弄清楚这一点完全靠我自己的问题有点困难。
有人可以指点我正确的方向吗?
【问题讨论】:
-
0.000003943322的输出应该是什么? -
您所说的
possible是什么意思?我猜您必须分别检查每个值,并在“计算”前导 0 之后将 x 设置为%xf。一个有趣的问题,但我没有看到批量解决方案。祝你好运! -
@higuaro 输出将是“0.000003”,但如果您知道将其四舍五入为“0.000004”的解决方案,那也可以。另外,我的意思是可能的,BASH/bc/printf 是否真的有能力做到这一点,还是我必须使用其他工具?
标签: bash math printf rounding bc