我在这个网站上阅读了一些答案,发现printf四舍五入是可取的。
然而,当我在实践中使用它时,一个微妙的错误导致我出现以下行为:
$ echo 197.5 | xargs printf '%.0f'
198
$ echo 196.5 | xargs printf '%.0f'
196
$ echo 195.5 | xargs printf '%.0f'
196
Run Code Online (Sandbox Code Playgroud)
请注意,四舍五入196.5变为196。
我知道这可能是一些微妙的浮点错误(但这不是一个很大的数字,嗯?),所以有人可以对此有所了解吗?
对此的解决方法也非常受欢迎(因为我现在正在尝试将其付诸实践)。