你添加0.0005的技巧并不是一个坏主意.虽然,它并没有那么好用.当bc执行某些操作(如分区)时,内部使用scale.

在你的情况下,最好先执行除法,可能使用大规模或-l切换到bc1(如果你的版本支持它),然后加0.0005然后设置scale = 3并执行涉及内部扩展的操作执行截断.

就像是:

`a=$sum/$n+0.0005; scale=3; a/1`

当然,无论总和是正数还是负数,您都希望以不同方式进行.幸运的是,bc有一些条件运算符.

`a=$sum/$n; if(a>0) a+=0.0005 else if (a<0) a-=0.0005; scale=3; a/1`

然后,您将要使用printf格式化此答案.

包含在函数回合中(您可以选择小数位数):

round() {

# $1 is expression to round (should be a valid bc expression)

# $2 is number of decimal figures (optional). Defaults to three if none given

local df=${2:-3}

printf '%.*f\n' "$df" "$(bc -l <<< "a=$1; if(a>0) a+=5/10^($df+1) else if (a<0) a-=5/10^($df+1); scale=$df; a/1")"

}

试试吧:

gniourf$round "(3+3+4)/3"

3.333

gniourf$round "(3+3+5)/3"

3.667

gniourf$round "-(3+3+5)/3"

-3.667

gniourf$round 0

0.000

gniourf$round 1/3 10

0.3333333333

gniourf$round 0.0005

0.001

gniourf$round 0.00049

0.000

1使用-l开关,比例设置为20,这应该足够了.

linux 把数字传给bc,linux – 在Bash中使用bc舍入数字相关推荐

  1. c上传文件到linux服务器,上传文件到Linux服务器

    1. Window上传文件到Linux 1.1 图形化界面winscp 适用于传送文件和目录,但要安装额外的软件winscp 1.2 lrzsz套件 适用于传送文件,使用ssh远程登录管理软件xshe ...

  2. linux 手机互传,轻松实现Linux笔记本和手机、PDA互传文件(转)

    轻松实现Linux笔记本和手机.PDA互传文件(转)[@more@]声明:本文适用于FC2,对于其它Linux仅供参考 Linux功能非常强大,只是还有很多功能你不知道!虽然当你的手机放到你的本本的红 ...

  3. linux pscp 上传_windows与linux传输工具pscp详解

    朋友的一个sns网站之前一直用的是windows 2003的服务器, 维护起来确实不是很方便,出于管理,稳定,以及安全它一直是我的心病, 正赶上最近朋友的网站要改版, 而且要做一些后台的任务,于是想把 ...

  4. scp命令Linux文件上传与下载,Linux利用scp命令上传下载文件

    标签:上传下载   目次   file   nbsp   bsp   test   www   文件下载   上传 1.从效劳器下载文件 scp username@servername:/path/f ...

  5. 两台linux之间互传php脚本,linux下两台服务器实现同步的方法

    本文主要和大家分享linux下实现两台服务器实时同步方法介绍,假设两个服务器:192.168.0.1 源服务器 有目录 /opt/test/和192.168.0.2 目标服务器 有目录 /opt/ba ...

  6. linux pscp 上传_Pscp实现Linux文件传输

    Pscp 是 putty 安装包所带的远程文件传输工具,可以在Putty官方下载.使用和 Linux 下 scp 命令相似. 具体的使用 方法如下: PSCP 和 SCP 功能相同,在 windows ...

  7. linux ftp上传下载文件,Linux下ftp命令上传下载文件

    命令行下连接ftp服务器 方式一: 默认端口 ftp hostname 方式二: 指定端口 [ec2-user@ip-99-240-80-144 ~]$ ftp ftp> open 99.240 ...

  8. html文本怎么转化为数字html,将阿拉伯数字转换为html文件中的阿拉伯/波斯数字...

    您可以使用正则表达式查找"​​>"之间的HTML部分和' // Convert all English digits in a string to Arabic digit ...

  9. c语言组成整数的最大数字,c语言 编写程序将一个正整数中的所有偶数数字取出来并用这些数字构成一个最大数。...

    满意答案 litielige 2016.11.20 采纳率:48%    等级:7 已帮助:515人 #include long fun(long s) { int sum = 0; long fin ...

  10. 本地上传文件到Linux云服务器

    如何用Xshell向Linux服务器上传文件 对于Linux用户来说,经常会使用到Xshell这个远程管理软件,比如会借助Xshell向Linux服务器上传文件,那么作为新手,肯定还不知道怎么操作,下 ...

最新文章

  1. 小程序音频播放报10001 解决方案 errCode:10001, errMsg:errCode:602,err:error,not found param
  2. arraylist切割_JAVA List和Map切割工具详解
  3. ReactOS 0.4.11 发布,Windows 系统的开源替代方案
  4. workspace-project-target关系与解耦工程结构总结
  5. HTMLtd 标签的 scope 属性
  6. 怎么避免options请求_和上级沟通的正确打开方式:3种技巧,轻松让领导答应你的请求...
  7. 云平台队列服务-Qbus实践
  8. 用matlab的ADC和DAC过程,谈谈我理解的ADC和DAC
  9. STC51几种简单的延时函数
  10. 用Python写一个语音播放软件
  11. 【Matlab】符号运算总结
  12. win10 android模拟器 菜单,Win10 Android模拟器教程
  13. python输出斐波那契数列_如何用Python输出一个斐波那契Fibonacci数列
  14. 2021湖北技能高考成绩时间查询,2020湖北技能高考成绩查询时间
  15. 江南时报:百度有啊命名堪比可口可乐
  16. 汉字读音表GB2312版 (共7809个汉字)
  17. excel自动汇总多表格数据
  18. 精确控制Origin to Word图片格式、大小及主题使用技巧
  19. matlab 海面反射,海面波浪模拟 MATLAB
  20. 计算机作业评价表,【作业检查记录评语】_教导处作业检查评语,教导处作业检查记录...

热门文章

  1. 28. Implement strStr()
  2. intel 面试总结
  3. java 动态代理 jdk为何比cglib效率低 原理总结
  4. windows环境安装elasticsearch
  5. web3.eth.estimateGas
  6. java中class.forName和classLoader加载类的区分
  7. python 爬poj.org的题目
  8. 磁盘设置压缩导致无法将数据库还原到该硬盘的问题
  9. Dijkstra最短路径
  10. .net中的装箱与拆箱!