Thread overview
fabs() ile abs() arasındaki fark nedir?
Sep 08, 2012
Salih Dinçer
Sep 08, 2012
Salih Dinçer
Sep 08, 2012
Salih Dinçer
September 08, 2012

Merhaba,

Biraz önce int türü değişkenlerde denedim ama fabs() işlevi de tıpkı abs() gibi çalışmakta. Acaba fark ne olabilir?

Teşekkürler...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 08, 2012

Sanırım biri float türü değişkenler için ama hata almayınca sorayım dedim. Kodum şöyle:

void main() {
 foreach(i; 0..10) i.write();
 writeln();
 foreach_reverse(i; 0..10) i.write();
 writeln("\nAşağısı tersDüz() işlevinin sonucudur:\n");

 void tersDüz(bool ters_mi=false) {
   int _i;
   if(ters_mi) _i = 10-1;
   for(int i; i < 10; i++) write(fabs(_i-i));
   writeln();
 }
 tersDüz();
 tersDüz(true);
}

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 08, 2012

Hocam fabs() için şunlar yazıyor:
Alıntı:

>

/*******************************

  • Returns |x|
  •  $(TABLE_SV
    
  •  $(TR $(TH x)                 $(TH fabs(x)))
    
  •  $(TR $(TD $(PLUSMN)0.0)      $(TD +0.0) )
    
  •  $(TR $(TD $(PLUSMN)$(INFIN)) $(TD +$(INFIN)) )
    
  •  )
    

/
real fabs(real x) @safe pure nothrow; /
intrinsic */

Haa keza abs() işlevinden görüldüğü üzere seçimli bir yönlendirme varmış:

Num abs(Num)(Num x) @safe pure nothrow
   if (is(typeof(Num.init >= 0)) && is(typeof(-Num.init)) &&
           !(is(Num* : const(ifloat*)) || is(Num* : const(idouble*))
                   || is(Num* : const(ireal*))))
{
   static if (isFloatingPoint!(Num))
       return fabs(x);
   else
       return x>=0 ? x : -x;
}

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 08, 2012

Benim tahminim, abs() tamsayılar, fabs() da kesirli sayılar içinmiş ama sonradan abs()'ı şablona dönüştürmüşler ve fabs()'a gerek kalmamış. Tahmin. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]