Makine epsilonu, birine eklenen en küçük sayı olarak kanonik olarak tanımlanır, birinden farklı bir sonuç verir.C# makinesinde epsilon'u nerede bulabilirim?
Double.Epsilon
var ama ad çok yanıltıcıdır: en küçük (denormalized) Double
değeri gösterilebilir ve bu nedenle her tür sayısal programlama için kullanışsızdır.
Double
türü için true epsilon'u almak istiyorum, böylece programımda toleransları kodlamak zorunda kalmamak için. Bunu nasıl yaparım ?
İlgili: http://www.johndcook.com/blog/2010/06/08/c-math-gotchas/ – AakashM
@AakashM: Bunu okudum. Epsilon'un anlamı IEEE754'ün bakış açısından oldukça açık ve Microsoft'un bu amatörce bir şey yapması çok yazık oldu. Kayan nokta uygulaması güvenilir mi? –
@AlexandreC .: 'Double.MinValue', .NET Framework'teki diğer' MinValue 'alanlarına karşılık gelen' Int32.MinValue', 'DateTime.MinValue' vb. Gibi büyük olasılıkla tanımlanmıştır. C.'de DBL_MIN ile aynıdır. Ancak, Double.Epsilon'un tanımının kafa karıştırıcı olduğunu kabul ediyorum. –