如何从变量中删除小数?

Ran*_*ock 9 shell

如何删除shell脚本中的小数位.我将MB与字节相乘得到以字节为单位的值.我需要删除小数位.

ex:-
196.3*1024*1024
205835468.8
expected output
205835468
Run Code Online (Sandbox Code Playgroud)

Sha*_*hin 18

(你没有提到你正在使用的shell;这个答案假设是Bash).

您可以使用删除小数值${VAR%.*}.例如:

[me@home]$ X=$(echo "196.3 * 1024 * 1024" | bc)
[me@home]$ echo $X
205835468.8
[me@home]$ echo ${X%.*}
205835468
Run Code Online (Sandbox Code Playgroud)

请注意,这会截断值而不是舍入它.如果你想详谈,使用printf如图罗马的回答.

${variable%pattern}语法删除最短的比赛pattern从开始TBE 回来variable.有关更多信息,请阅读http://tldp.org/LDP/abs/html/string-manipulation.html


Beg*_*ner 8

使用printf:

printf %.0f $float
Run Code Online (Sandbox Code Playgroud)

这将执行四舍五入.如果float是的话1.8,它会给你2.