这是我的代码:
float = 10.23444566
awk {printf("%.0f\n", $float)}
我的答案是0。
我只想从中获得10分。
我正在使用awk命令。
答案 0 :(得分:1)
试试这个。
float=10.23444566;
printf "%.0f" $float;
在shell脚本中,您用于printf
命令的语法是错误的。你不能像c
函数一样调用它。
有关详细信息,请参见手册页。
man printf
如果要使用awk
命令,则需要将float
值传递给命令。请参阅下面的代码。
float=10.23444566;
echo $float | awk '{printf "%.0f\n", $1}';
答案 1 :(得分:0)
好吧,(Posix-)Shell没有浮点数,当我们谈论浮点数时,谈论尾数和指数是有意义的,而且不清楚你的意思是什么"整数"一部分。
此外,您分配给变量float
的语句在语法上是错误的,因此此时您将收到一条错误消息。
如果你有一个字符串,它可能看起来不像浮点数,但至少像一个小数(就像你的例子中那样),并且你想要提取小数点左边的部分,这就是像这样:
float=10.45671
int_part=${float%.*}
你需要考虑这些案例,你有一个负数,或者当你真的有一些看起来像一般浮动的东西时,即12.157E+03
。
答案 2 :(得分:0)
我相信这是OP寻找的答案:
b
这是相似的:
> float=10.23444556; echo $float | awk '{ printf "%d\n",$1 }'
10
>