Matematik ve mühendislikte Epsilon
Genel olarak matematik ve mühendislikte:
- Delta genellikle herhangi bir ölçekte olabilen bir farkı ifade etmek için kullanılır.
- Epsilon genellikle ihmal edilebilir bir miktara atıfta bulunur.
ve epsilon sizin durumunuzda daha uygun görünüyor.
Bilgisayar Biliminde Epsilon
Özellikle bilgisayar biliminde, epsilon terimi, arasındaki farkı ve kesinlikle daha büyük olan en küçük şamandırayı ölçen makine espilonunu da ifade eder . Bu son sayı Java'daki şamandıralar içindir ve şunlarla hesaplanabilir:1.0f
1.0f
1.00000011920928955078125f
float f = Float.intBitsToFloat(Float.floatToIntBits(1f) + 1);
Makine epsilonunun tanımı, yukarıda açıklanan epsilonun genel kullanımı ile tutarlıdır.
Şamandıraların karşılaştırılması
Ancak şamandıraları "yakınlık" için karşılaştırmadan önce ölçekleri hakkında bir fikriniz olması gerektiğini unutmayın. İki çok büyük ve sözde çok farklı şamandıra eşit olabilir:
9223372036854775808f == 9223372036854775808f + 1000000000f; //this is true!
Ve tersine, makine epsilonundan "sadece" farklı iki küçük şamandıra arasında birçok olası şamandıra değeri (ve birkaç büyüklük sırası) olabilir. Aşağıdaki örnekte, small
ve arasında 10.000.000 kullanılabilir kayan değer vardır f
, ancak aralarındaki fark hala makine epsilonunun oldukça altındadır:
float small = Float.MIN_VALUE; // small = 1.4E-45
float f = Float.intBitsToFloat(Float.floatToIntBits(small) + 100000000); // f = 2.3122343E-35
boolean b = (f - small < 0.00000011920928955078125f); //true!
GlenH7'nin cevabında yer alan makale, şamandıra karşılaştırmasını daha fazla araştırıyor ve bu sorunların üstesinden gelmek için çeşitli çözümler öneriyor.