Come mostrare zero prima del punto decimale in bc?


9
echo "scale=3;1/8" | bc

mostra .125sullo schermo. Come mostrare 0.125se il risultato dell'output è inferiore a uno?

Risposte:


9

bcnon è possibile produrre zero prima del punto decimale, è possibile utilizzare printf :

$ printf '%.3f\n' "$(echo "scale=3;1/8" | bc)"
0.125

Comando più leggibile dall'uomo. ;-)
Kevin Dong,

1

Puoi convogliare in awk

echo "scale=3;1/8" | bc | awk '{printf "%.3f\n", $0}'

o potresti semplicemente usare awk per tutto

awk '{printf "%.3f\n", 1/8}' <<< ""

Produzione

0.125

Perché dovremmo farlo <<< ""?
Kevin Dong,

@KevinDongNaiJia awk richiede un file di input per funzionare, questo crea e svuota here string. Quindi sostanzialmente finge che alla fine ci sia un file vuoto, altrimenti awk leggerà da stdin.Ulteriori informazioni qui

@cuonglm così puoi, non modificare le mie risposte, per favore.

@cuonglm Petty downvote, bello!

1
@JID: non tutte le shell supportate qui stringa, è necessario specificarlo per gli altri visualizzatori. L'uso del BEGINblocco ti impedisce di affrontare questo problema ed è portatile.
cuonglm,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.