Bc ile yüzdürme işlemi?


42

Görünüşe göre bc float işlemlerini desteklemiyor, yaptığım echo 1/8 | bczaman bana sıfırı getiriyor.

Kontrol ettim bc (1), ama bahsetmiyor bile float, bu yüzden desteklenip desteklenmediğini merak ediyorum.


9
echo "scale=4; 1/8" | bc
LiuYan 研 13

Bu soru ve özellikle kabul edilen cevap sizin için ilginç olabilir.
Emanuel Berg

Yanıtlar:


56

bckayan nokta yapmaz ancak sabit ondalık sayılar yapar. -lBayrak Hauke yükleri örneğin bir matematik kütüphanesi bahseder. trig fonksiyonları ancak aynı zamanda anlamına gelir

[...] varsayılan ölçek 20

scaleman sayfasında belirtilen bir dizi "özel değişken" den biridir. Bunu ayarlayabilirsiniz:

scale=4

İstediğiniz zaman ( -lkullanılmış olsun olmasın). Bu ifade eder , bir ondalık kullanılan önemli basamak sayısı . Başka bir deyişle, sonraki çözümler ondalık basamağından sonra o basamak sayısına yuvarlanır (== sabit doğruluk).

Varsayılan ölçek sansları -l0'dır, yani tam sayılara yuvarlanır.


27

man sayfa diyor ki:

Bc, -l seçeneğiyle çağrılırsa, matematik kütüphanesi önceden yüklenir [...]

Bunun anlaşılabilirliği geliştirilebilir, gerçekten ...


14
Bir hata olarak memba rapor edin ...
vonbrand

0

1) bc'deki sayıların ölçeği vardır. Bir sayının ölçeği, ölçek faktörü ile karıştırılmamalıdır. Aynı dünya 'ölçeği', sayının ölçeğini sorgulamak için bir işlev olarak veya ölçek faktörünü ayarlamak için bir parametre olarak kullanılır.

echo "scale=scale(1.1);11/10" | bc will return 1.1

2) Ölçek faktörü, işlem yaparken ondalık basamağın sağında kaç basamağın tutulduğunu belirler. S, geçerli ölçek faktörü ise, sa, birinci işlenenin a ölçeğidir, sb, ikinci işlenenin b ölçeğidir, sonuçlar aşağıdaki gibi kesilir:

    scale of result
a+b     max(sa,sb)
a-b     max(sa,sb)
a*b     min(sa+sb , max(s,sa,sb))
a/b     s
a%b     so that a = b*quotient + remainder; remainder has sign of a
a^b     min(sa×|b|, max(s,sa)); b must be integer
sqrt(a) max(s,sa)

3) Başlangıçta, bc bir DC ön işlemcisiydi. Şimdi, birçok sistemde, bc bağımsız bir programdır.

Kaynak: [ https://plan9.io/magic/man2html/1/dc]

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.