数学计算器?

页面导航:
→ 正文内容 shell数学计算
shell 中数学计算总结
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵
1、错误方法举例 a) var=1+1 echo $var 输出的结果是1+1,悲剧,呵呵 b) var=1 var=$var+1 echo $var 输出结果是1+1,依然悲剧,呵呵 2、正确方法 1)使用let var=1 let "var+=1" echo $var 输出结果为2,这次没有悲剧 注意: a)经我测试let几乎支持所有的运算符,在网上看到一篇文章说“let不支持++、--和逗号、(、)”,但经我测试自加、自减、以及括号的优先级都得到了很好的支持 b)方幂运算应使用“**” c)参数在表达式中直接访问,不必加$ d)一般情况下算数表达式可以不加双引号,但是若表达式中有bash中的关键字则需加上 e)let后的表达式只能进行整数运算 2)使用(()) var=1 ((var+=1)) echo $var 输出结果为2 注意: (())的使用方法与let完全相同 3)使用$[] var=1 var=$[$var+1] echo $var 输出结果位2 注意: a)$[]将中括号内的表达式作为数学运算先计算结果再输出 b)对$[]中的变量进行访问时前面需要加$ c)$[]支持的运算符与let相同,但也只支持整数运算 4)使用expr var=1 var=`expr $var + 1` echo $var 输出结果为2 注意: a)expr后的表达式个符号间需用空格隔开 b)expr支持的操作符有: |、&、&、&=、=、!=、&=、&、+、-、*、/、% c)expr支持的操作符中所在使用时需用\进行转义的有:|、&、&、&=、&=、&、* e)expr同样只支持整数运算 5)使用bc(可以进行浮点数计算) var=1 var=`echo "$var+1"|bc` echo $var 输出结果为2 介绍: bc是linux下的一个简单计算器,支持浮点数计算,在命令行下输入bc即进入计算器程序,而我们想在程序中直接进行浮点数计算时,利用一个简单的管道即可解决问题。 注意: 1)经我测试bc支持除位操作运算符之外的所有运算符。 2)bc中要使用scale进行精度设置 3)浮点数计算实例 var=3.14 var=`echo "scale=2;$var*3"|bc` echo $var 输出结果为9.42 6)使用awk(可已进行浮点数计算) var=1 var=`echo "$var 1"|awk '{printf("%g",$1*$2)}'` echo $var 输出结果为2 介绍: awk是一种文本处理工具,同时也是一种程序设计语言,作为一种程序设计语言,awk支持多种运算,而我们可以利用awk来进行浮点数计算,和上面bc一样,通过一个简单的管道,我们便可在程序中直接调用awk进行浮点数计算。 注意: 1)awk支持除微操作运算符之外的所有运算符 2)awk内置有log、sqr、cos、sin等等函数 3)浮点数计算实例 var=3.14 var=`echo "$var 2"|awk '{printf("%g",sin($1/$2))}'` echo $var 输出结果为1 3、总结 终于把所有能搜集到的资料看完,并最后总结出一套自己的东西了,以后再遇到类似问题就有的看了,哈哈~ Yorking Alan
上一篇:下一篇:
最 近 更 新
热 点 排 行数学运算率_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
12页免费6页免费6页免费9页免费12页2下载券 4页免费3页免费4页免费2页免费6页免费
数学运算率|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢点击:4340
点击:3791
点击:67385
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字·文化部监督电子邮箱:wlwh@·
文明办网文明上网举报电话: 举报邮箱:admin1@&&&&&&&&&&&&&&&&让天下没有难学的技术
[Google Guava] 12-数学运算
[Google Guava] 12-数学运算
译者:沈义扬
int logFloor = LongMath.log2(n, FLOOR);
int mustNotOverflow = IntMath.checkedMultiply(x, y);
long quotient = LongMath.divide(knownMultipleOfThree, 3, RoundingMode.UNNECESSARY); // fail fast on non-multiple of 3
BigInteger nearestInteger = DoubleMath.roundToBigInteger(d, RoundingMode.HALF_EVEN);
BigInteger sideLength = BigIntegerMath.sqrt(area, CEILING);
为什么使用Guava Math
Guava Math针对各种不常见的溢出情况都有充分的测试;对溢出语义,Guava文档也有相应的说明;如果运算的溢出检查不能通过,将导致快速失败;
Guava Math的性能经过了精心的设计和调优;虽然性能不可避免地依据具体硬件细节而有所差异,但Guava Math的速度通常可以与Apache Commons的MathUtils相比,在某些场景下甚至还有显著提升;
Guava Math在设计上考虑了可读性和正确的编程习惯;IntMath.log2(x, CEILING) 所表达的含义,即使在快速阅读时也是清晰明确的。而32-Integer.numberOfLeadingZeros(x – 1)对于阅读者来说则不够清晰。
注意:Guava Math和GWT格外不兼容,这是因为Java和Java Script语言的运算溢出逻辑不一样。
Guava Math主要处理三种整数类型:int、long和BigInteger。这三种类型的运算工具类分别叫做、和。
有溢出检查的运算
Guava Math提供了若干有溢出检查的运算方法:结果溢出时,这些方法将快速失败而不是忽略溢出
IntMath.checkedAdd(Integer.MAX_VALUE, Integer.MAX_VALUE); // throws ArithmeticException
IntMath、LongMath和BigIntegerMath提供了很多实数运算的方法,并把最终运算结果舍入成整数。这些方法接受一个枚举值作为舍入的模式:
DOWN:向零方向舍入(去尾法)
UP:远离零方向舍入
FLOOR:向负无限大方向舍入
CEILING:向正无限大方向舍入
UNNECESSARY:不需要舍入,如果用此模式进行舍入,应直接抛出ArithmeticException
HALF_UP:向最近的整数舍入,其中x.5远离零方向舍入
HALF_DOWN:向最近的整数舍入,其中x.5向零方向舍入
HALF_EVEN:向最近的整数舍入,其中x.5向相邻的偶数舍入
这些方法旨在提高代码的可读性,例如,divide(x, 3, CEILING) 即使在快速阅读时也是清晰。此外,这些方法内部采用构建整数近似值再计算的实现,除了在构建sqrt(平方根)运算的初始近似值时有浮点运算,其他方法的运算全过程都是整数或位运算,因此性能上更好。
BigIntegerMath
2为底的对数
10为底的对数
// returns 52
BigIntegerMath.sqrt(BigInteger.TEN.pow(99), RoundingMode.HALF_EVEN);
Guava还另外提供了一些有用的运算函数
BigIntegerMath*
最大公约数
二项式系数*
*BigInteger的最大公约数和取模运算由JDK提供
*阶乘和二项式系数的运算结果如果溢出,则返回MAX_VALUE
浮点数运算
JDK比较彻底地涵盖了浮点数运算,但Guava在类中也提供了一些有用的方法。
判断该浮点数是不是一个整数
舍入为int;对无限小数、溢出抛出异常
舍入为long;对无限小数、溢出抛出异常
舍入为BigInteger;对无限小数抛出异常
2的浮点对数,并且舍入为int,比JDK的Math.log(double) 更快
CTC Architect at 道富信息科技(浙江)有限公司本站的翻译主编。关注并发编程,面向对象设计,分布式系统。
Latest posts by 沈义扬 ()
- 2014 年 4 月 11 日
- 2014 年 4 月 11 日
- 2014 年 4 月 9 日
您可能感兴趣的文章
(还没有评分)
Loading...在线科学计算器-开平方计算-在线数学计算器-开方计算器-根号计算器-Calculator
使用计算器可进行加(+)、减(-)、乘(×)、除(÷)、根号开方(√)、圆周率(π)、倒数(1/x)正弦(Sin)余弦(COS)等简单算术计算。如果输入同一数字符号请不要操做太快,以免出错。}

我要回帖

更多关于 数学计算题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信