[20170622]bc与取模运算.txt

简介: [20170622]bc与取模运算.txt --//前一阵子在使用bc做取模运算.发现一个奇怪的问题.开始以为是使用mod(受oracle的影响). --//查手册才发现%.

[20170622]bc与取模运算.txt

--//前一阵子在使用bc做取模运算.发现一个奇怪的问题.开始以为是使用mod(受oracle的影响).
--//查手册才发现%.

--//例子如下:
$ bc -v
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.

$ bc -q
9%4
1
9%5
4

--//很明显以上结果是正确的,但是如果加参数-l.
-l, --mathlib =>  Define the standard math library.

$ bc -lq
9%4
0
9%5
0
scale=12
9%5
0
9%4
0
--//很明显这个时候就不对了.

$ bc -lq
12312324%1232
.00000000000000001168

$ bc -q
12312324%1232
948

--//为什么呢?也就是如果使用-l参数,使用standard math library. %不再是取模运算.到底做什么运算呢?
$ man bc
--//里面一段话如下:
expr % expr
   The  result of the expression is the "remainder" and it is com‐
   puted in the following way.  To compute a%b, first a/b is  com‐
   puted to scale digits.  That result is used to compute a-(a/b)*b
   to the scale of the maximum of scale+scale(b) and scale(a).   If
   scale  is  set  to  zero  and both expressions are integers this
   expression is the integer remainder function.

# bc -l
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1/3
.33333333333333333333
--//可以看出使用math 库,缺省scale=20.
--//而如果不使用-l参数scale=0.

--//这样如果在scale=20的情况,取模使用是这样.

12312324/1232
9993.76948051948051948051

12312324-9993.76948051948051948051*1232
.00000000000000001168

scale=2
12312324%1232
11.68

12312324/1232
9993.76
--//bc竟然没做四舍五入.

12312324-9993.76*1232
11.68

目录
相关文章
|
算法 搜索推荐 数据挖掘
AB实验设计
AB实验的原理、优缺点及流程
1296 0
AB实验设计
|
9月前
求a+aa+aaa+aaaa+aaaaa的值
求a+aa+aaa+aaaa+aaaaa的值
83 0
|
10月前
|
Python
求a+aa+aaa+aaa...a的值
求a+aa+aaa+aaa...a的值
119 0
|
10月前
|
Python
计算S=a+aa+…+aa…a
计算S=a+aa+…+aa…a
87 0
|
JavaScript C# Windows
C# 通过StreamWriter输出的TXT流文件,前缀带EF BB BF
C# 通过StreamWriter输出的TXT流文件,前缀带EF BB BF
294 0
C# 通过StreamWriter输出的TXT流文件,前缀带EF BB BF
|
Windows
Sn=a+aa+aaa+aaaa+aaaaa+...
Sn=a+aa+aaa+aaaa+aaaaa+...
133 0
|
网络协议 网络安全 数据安全/隐私保护
|
DataWorks 搜索推荐 前端开发
召奴的大哉问系列:B2B 是否要做AB Test
AB Testing在软体工程领域是一个耳熟能详的词,大家都知道AB Test的重要性。当产品经理提出的需求不合里(太难做)时,程序员们心理总是os,你怎么知道客户到底要什么,不也是拍脑袋想的吗,这时候我们可能会提出另一种作法,并要求他(她)去做一个AB Test来验证哪一个作法更好。 但是,大家可能不知道,要做一个成功的AB Test实验,它背后的成本是非常巨大的。首先,你必须做许多的分析,了
966 0
召奴的大哉问系列:B2B 是否要做AB Test
|
应用服务中间件 Linux 测试技术
AB
AB是Apache自带的压力测试工具。AB非常实用,它不仅可以对Apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如Nginx、Tomcat、IIS等。 AB对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。
1898 0