用实数递增变量(不是整数)[关闭]


2

我想k在循环内增加一个变量。每个增量为0.025。我试过用:

let "k += 0.025"

let "$k += 0.025"

k += 0.025

和许多其他变化。有谁知道如何做到这一点?

谢谢!阿米特



对不起,我不确定有多少用户在超级用户身上,而且我对SO的响应时间有很好的体验
Amit

Answers:


3

Bash不支持浮点。Ksh93和zsh做。

在Bash中,您可以使用bcawk

k=$(echo "$k + 0.025" | bc -l)

要么

k=$(awk -v "k=$k" 'BEGIN { print k + 0.025 }')

在某些情况下,在AWK中编写整个脚本或节可能更方便,而不是尝试传入和传出值并进行尴尬的比较。


我尝试使用你给我的bc命令,我得到line 7: syntax error near unexpected token k = $(echo“$ k + 0.025”| bc -l)'`
Amit

@Amit:对我来说很好。请注意,k需要初始化。如果未设置,bc将发出错误。但是,您收到的错误来自shell。你在用Bash吗?什么版本?
丹尼斯威廉姆森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.