Как округлить десятичные значения с помощью bash-скрипта? - PullRequest
0 голосов
/ 16 октября 2019

После запуска некоторого кода я получил этот 4D-массив, который я сохранил в текстовом файле, значения довольно длинные, поэтому мне нужно округлить их до 6 десятичных знаков, изменения должны быть сделаны в исходном файле, поэтомуя могу иметь тот же формат массива, не просто печатая значения

здесь часть массива

[[[[-0.027340000495314598, -0.07065500319004059, 0.06236099824309349, -0.11684399843215942, -0.05784200131893158], [-0.16122999787330627, -0.14122700691223145, -0.1653739959001541, 0.1630070060491562, 0.05366099998354912], [0.035610001534223557, -0.05879399925470352, 0.06178700178861618, 0.15509599447250366, -0.11066299676895142], [-0.006271999794989824, -0.04911699891090393, -0.06760299950838089, -0.005801999941468239, 0.02808699943125248], [-0.1022690013051033, -0.08862099796533585, 0.14321200549602509, -0.00038400001358240843, 0.10744699835777283]]

Ответы [ 2 ]

2 голосов
/ 16 октября 2019
$ echo '[[[[-0.027340000495314598, -0.07065500319004059, 0.06236099824309349' |
    perl -pe 's/([-+]?[0-9]*\.[0-9]+|[0-9]+)/sprintf "%.6f","$1"/ge'
[[[[-0.027340, -0.070655, 0.062361
0 голосов
/ 16 октября 2019

Вы можете использовать printf для этого. Я нашел пример здесь

printf "%.*f\n" 6 "-0.027340000495314598"

вернет -0,027340. 6 представляет количество цифр для печати

...