2014-10-08 50 views
1

我目前正在玩弄周围使用tcsh并且Ive使脚本注意: 如果做除法只作为论据脚本编程和显著数字

即去(数字是输出尽可能多的显著人物输入参数):

2/4 outputs 0 
4/2 outputs 2 
22/2 outputs 11 
1/8 outputs 0 
9/2 outputs 4 

那么如何改变这个,所以1/8 = 0.125,2/4 = 0.5,9/2 = 4.5等?

+0

GNU/Linux的炮弹只能执行整数除法。但还有其他选项:http://unix.stackexchange.com/questions/40786/how-to-do-integer-float-calculations-in-bash-or-other-languages-frameworks – admdrew 2014-10-08 17:49:03

+0

可能的重复[如何我可以在bash中获得一个浮点数?](http://stackoverflow.com/questions/12722095/how-can-i-get-a-float-division-in-bash) – admdrew 2014-10-08 17:50:21

回答

-1

您必须通过请求变量的数据类型来提供所需的内存空间。如果您将答案设置为char类型的变量,则只有一个字符的空间。如果将变量类型设置为float,则会为内存准备一个十进制值。

+0

KornShell可以处理十进制值,但是Bourne像炮弹只能做整数。 – admdrew 2014-10-08 17:54:24

+0

好吧我想,但我怎么定义一个变量是一个浮动? – 2014-10-08 17:56:44

+0

@JustinFroias你在用什么shell? – admdrew 2014-10-08 17:57:37

0

使用任意精度计算器bc和规模设置你想要的精确度:

$ bc -e 'scale=10;1/8;4/5; scale=30; 1/31' 
.1250000000 
.8000000000 
.032258064516129032258064516129