zoukankan      html  css  js  c++  java
  • bc命令:浮点数计算

    在终端输入 bc 命令,然后回车,就可以进入 bc:

    [root@localhost simon]# bc -q
    2+3
    5

    bc命令选项

    选项说明
    -h | --help 帮助信息
    -v | --version 显示命令版本信息
    -l | --mathlib 使用标准数学库
    -i | --interactive 强制交互
    -w | --warn 显示 POSIX 的警告信息
    -s | --standard 使用 POSIX 标准来处理
    -q | --quiet 不显示欢迎信息


    例如你不想输入 bc 命令后显示一堆没用的信息,那么可以输入bc -q输入bc -q命令

    内置变量

    变量名作 用
    scale 指定精度,也即小数点后的位数;默认为 0,也即不使用小数部分。
    ibase 指定输入的数字的进制,默认为十进制。
    obase 指定输出的数字的进制,默认为十进制。
    last 或者 . 表示最近打印的数字

    内置函数

    函数名作用
    s(x) 计算 x 的正弦值,x 是弧度值。
    c(x) 计算 x 的余弦值,x 是弧度值。
    a(x) 计算 x 的反正切值,返回弧度值。
    l(x) 计算 x 的自然对数。
    e(x) 求 e 的 x 次方。
    j(n, x) 贝塞尔函数,计算从 n 到 x 的阶数。


    要想使用这些数学函数,在输入 bc 命令时需要使用-l选项,表示启用数学库。

    1】scale 变量用法举例:scale变量的用法举例刚开始的时候,10/3 的值为 3,不带小数部分,就是因为 scale 变量的默认值为 0
      后边给 scale 指定了一个大于 0 的值,就能看到小数部分了。 【2】ibase 和 obase 变量用法举例:ibase 和 obase 用法示例注意:obase 要尽量放在 ibase 前面,因为 ibase 设置后,后面的数字都是以 ibase 的进制来换算的。 【3】可以将多个表达式放在一行,只要用分号;隔开就行。

    直接输出 bc 的计算结果

    形式:
    echo "expression" | bc
    将 bc 的计算结果赋值给 Shell 变量
    形式:
    variable
    =$(echo "expression" | bc) variable 就是变量名。
    【实例1】最简单的形式:
    [c.biancheng.net]$ echo "3*8"|bc
    24
    [c.biancheng.net]$ ret=$(echo "4+9"|bc)
    [c.biancheng.net]$ echo $ret
    13
    【实例2】使用 bc 中的变量:
    [c.biancheng.net]$ echo "scale=4;3*8/7"|bc
    3.4285
    [c.biancheng.net]$ echo "scale=4;3*8/7;last*5"|bc
    3.4285
    17.1425
    【实例3】使用 Shell 脚本中的变量:
    [c.biancheng.net]$ x=4
    [c.biancheng.net]$ echo "scale=5;n=$x+2;e(n)"|bc -l
    403.42879
    在第二条命令中,$x表示使用第一条 Shell 命令中定义的变量,n是在 bc 中定义的新变量,它和 Shell 脚本是没关系的。
    【实例4】进制转换:
    #十进制转十六进制
    [mozhiyan@localhost ~]$ m=31
    [mozhiyan@localhost ~]$ n=$(echo "obase=16;$m"|bc)
    [mozhiyan@localhost ~]$ echo $n
    1F
    #十六进制转十进制
    [mozhiyan@localhost ~]$ m=1E
    [mozhiyan@localhost ~]$ n=$(echo "obase=10;ibase=16;$m"|bc)
    [mozhiyan@localhost ~]$ echo $n
    30
  • 相关阅读:
    VS2013+PTVS,python编码问题
    关于网易云音乐爬虫的api接口?
    Django分页和查询参数的问题
    angular route 与 django urls 冲突怎么解决?
    200 from memory cache / from disk cache / 304 Not Modified 区别
    go语言中在变量后加上接口是什么意思?
    append生成新变量的时候,没有如预期(It's a feature,not a bug?)
    为一个支持GPRS的硬件设备搭建一台高并发服务器用什么开发比较容易?
    学golang之前都需要哪些前置知识?
    求推荐go语言开发工具及go语言应该以哪种目录结构组织代码?
  • 原文地址:https://www.cnblogs.com/ggzhangxiaochao/p/13176730.html
Copyright © 2011-2022 走看看