Если вы рассматриваете 5 или n число десятичных чисел. Может быть, этот ответ решает вашу проблему.
double a = 123.00449;
double roundOff1 = Math.round(a*10000)/10000.00;
double roundOff2 = Math.round(roundOff1*1000)/1000.00;
double roundOff = Math.round(roundOff2*100)/100.00;
System.out.println("result:"+roundOff);
Выход будет: 123.01 это можно решить с помощью петлевой и рекурсивной функции.
Настройте цикл for следующим образом. С помощью этого синтаксиса цикл выполняет итерацию по позиционным параметрам, назначая каждому по очереди.
for point; do
grep "$str" ${filename}${point}.txt
done
См. здесь , вам нужно перейти к шагу через позиционные параметры.
Попробуйте что-то вроде этого:
# Iterating through the provided arguments
for ARG in $*; do
if [ -f filename_$ARG.txt]; then
grep "$str" filename_$ARG.txt
fi
done
Существует несколько способов сделать это, и, хотя я бы использовал shift
, вот еще один для разнообразия. Он использует функцию косвенности Bash:
#!/bin/bash
for ((i=1; i<=$#; i++))
do
grep "$str" ${filename}${!i}.txt
done
. Одно из преимуществ этого метода заключается в том, что вы можете запускать и останавливать свой цикл в любом месте. Предполагая, что вы проверили диапазон, вы можете сделать что-то вроде:
for ((i=2; i<=$# - 1; i++))
Кроме того, если вы хотите последний параметр: ${!#}
args=$@;args=${args// /,}
grep "foo" $(eval echo file{$args})
point="$@"
. – Dennis Williamson 20 November 2009 в 11:46