shell比较浮点数和整数

  今天有一个朋友忽然问我在shell中,如何比较浮点数和整数,倒是把我问的一愣,在工作中确实没有遇到这个场景。我们也知道,在shell中数字的计算通常都会转换成整数,比如说1.1和1会被认为是一样的。这么一来,我们就不能直接通过gt或者lt等方式来进行比较。虽然没遇到过,但我们也知道,这个比较肯定也不会很难。简单的记录下以作备用。

下面是一个常规写法的示例:

if [ 1.1 -gt 1 ];then
  echo "OK"
fi

直接会抛出如下异常:

line 3: [: 1.1: integer expression expected

正确的写法如下:

if [ `echo "1.1 > 1" | bc` -eq 1 ];then
    echo "OK"
fi
时间: 2024-09-27 05:34:25

shell比较浮点数和整数的相关文章

如何提取浮点数的整数以及小数部分

#include <stdio.h> #include <math.h> float fVal; float fDecimal; int iInteger; //iInteger = (fVal * 10) / 10; //fDecimal = fVal - iInteger int main() {     while(EOF != scanf("%f", &fVal)){         iInteger = (fVal * 10) / 10;   

Python3基础 int,float,str 输入浮点数,整数,字符串

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: myFloat=float(input('请输入一个浮点数:')) myInt=int(input('请输入一个整数:')) myStr=str(input('请输入一个字符串:')) result: ============= RESTART: C:/Users/Admini

[转载] c++ cout 格式化输出浮点数、整数及格方法

C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...? 下面的方法是在网上找到的,如果各位有别的办法谢谢留下... iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样.以下是一些常的: dec 置基数为10 相当于"%d" hex 置基数为16 相当于"%X" oct 置基数为8 相当于"%o" setfill(c) 设填充字符为c setprecision(n) 设显示小数精度为n位 setw(n)

Objective-C浮点数转化整数(向上取整、向下取整)

Objective-C拓展了C,自然很多用法是和C一致的.比如浮点数转化成整数,就有以下四种情况. 1.简单粗暴,直接转化 float f = 1.5; int a; a = (int)f; NSLog("a = %d",a); 输出结果是1.(int)是强制类型转化,丢弃浮点数的小数部分. 2.高斯函数,向下取整 float f = 1.6; int a; a = floor(f); NSLog("a = %d",a); 输出结果是1.floor()方法是向下取整

[剑指offer] 浮点数的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 输入描述 base,exponent 输出描述 base的exponent次方 题目分析 首先要注意,指数正负和零的情况判别: ①任何数的0次方等于0 ②0不能做除数(也就是指数为负时,基数不能为0) 解法一 运行时间:27ms 占用内存:636k public class Solution { public double Power(double base, int exp

shell脚本只提供整数算术运算(三种方式)—((表达式))、let &quot;表达式&quot;、value=`expr 表达式右边` (转载)

转自:http://blog.163.com/[email protected]/blog/static/132229655201131055455754/ 数值运算: 在bash中只提供了整数运算,一般shell通过let和expr这两个指令来实现. 使用格式为:   let  "x=$x+1"    或者    x=`expr  $x+1` 同时,在shell中,也可以通过((表达式)). 使用格式为:((x=$x+1)) 在上面的三种方式中,运算符还可以是: +.-.*./.% 

Python3基础 input 输入浮点数,整数,字符串

? ???????Python : 3.7.0 ?????????OS : Ubuntu 18.04.1 LTS ????????IDE : PyCharm 2018.2.4 ??????Conda : 4.5.11 ???typesetting : Markdown ? code """ @Author : 行初心 @Date : 18-9-24 @Blog : www.cnblogs.com/xingchuxin @Gitee : gitee.com/zhichengji

java.math包下计算浮点数和整数的类

(1)BigIntege:实现任意精度的整数运算.(2)BigDecimal:实现任意精度的浮点运算. 例如: 使用BigDecimal进行浮点数比较 import java.math.BigDecimal; public class HelloWorld{ public static void main(String[] args){ BigDecimal a=BigDecimal.valueOf(1.0); a=a.subtract(BigDecimal.valueOf(0.1)); //s

shell编程实例---实现整数的加减乘除余运算(利用read和脚本传参的方式)

1.read读取方式: [[email protected] scripts]# vim read_1.sh    1 #!/bin/bash   2 # Filename: read_1.sh   3 # Describe: Integer arithmetic   4 # Author: Lijun   5 # Date: 2015-08-24   6 # Version: 1.0.1   7     8 read -p "Please input two nums: " a b