bc truncate floating point Zahl
Wie kann ich abschneiden, eine floating-point-Zahl mit bc
e.g wenn ich
echo '4.2-1.3' | bc
welche Ausgänge 2.9
wie bekomme ich es abschneiden/verwenden Boden zu bekommen 2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
/
Betreiber.echo '(l(101)/l(10)) / 1' | bc -l
gibt einen float.echo 'scale=0; (l(101)/l(10)) / 1' | bc -l
Division durch 1 funktioniert ok, wenn
scale
0 ist (zB, wenn Sie beginnen, bc mitbc
und ändern sich nichtscale
), aber schlägt fehl, wennscale
positiv ist (zB, wenn Sie beginnen, bc mitbc -l
oder erhöhenscale
). (Siehe übersetzung unten). Für eine Allgemeine Lösung, verwenden Sie eintrunc
Funktion wie folgt aus:define trunc(x) { auto s; s=scale; scale=0; x=x/1; scale=s; return x }
Transkript, das zeigt, wie Division durch 1 von selbst ausfällt
bc -l
Fall, aber wietrunc
Funktion funktioniert ok, auf das abschneiden in Richtung null:bc <<< "scale=10;f=(3/55);scale=0;(312*f)/1"
Versuchen Sie die folgende Lösung. Es schneidet alles nach dem Komma ohne ein problem:
Können Sie stellen Sie den code ein bisschen kürzer, indem Berechnungen durchgeführt werden, die direkt auf die zahlen:
Im Allgemeinen, Sie können diese Funktion verwenden, um nur den ganzzahligen Teil einer Zahl:
Speichern, dass code in einer Datei (nennen wir es int.bc) und führen Sie den folgenden Befehl ein: