首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BC标度舍入误差

BC标度舍入误差
EN

Unix & Linux用户
提问于 2021-03-08 21:28:08
回答 4查看 528关注 0票数 0

尝试截断bc计算的值,但是,当我设置scale=0时,它将返回整个计算的0。设置scale=1返回一个适当的值357.3,但scale=0总是返回0。

下面是一个实例计算:

代码语言:javascript
复制
echo "scale=0; 3573 * (10 / 100)/1" | bc -l
0

echo "scale=1; 3573 * (10 / 100)/1" | bc -l
357.3

这不是使用bc将浮点数截断为整数的正确方法吗?我希望将它作为bash脚本的整数。谢谢!

EN

回答 4

Unix & Linux用户

发布于 2021-03-08 22:16:02

我们按操作顺序操作的其他产出:

代码语言:javascript
复制
echo "scale=0; 3573 * 10 / 100" | bc -l   # 357
echo "scale=0; 3573 / 100 * 10" | bc -l   # 350
票数 3
EN

Unix & Linux用户

发布于 2021-03-08 21:46:15

使用awk似乎要简单得多,

代码语言:javascript
复制
awk 'BEGIN { print int(3573 * (10/100)/1) }'
357
票数 2
EN

Unix & Linux用户

发布于 2021-03-09 01:50:18

@Paul_学究有正确的想法scale适用于计算的每个部分。10 / 100 =0级:

代码语言:javascript
复制
$ bc <<< 'scale = 0; 10 / 100'
0

所以整个计算结果是0。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/638262

复制
相关文章

相似问题

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