math.IsNearlyEqual

  boolean math.IsNearlyEqual( number a, number b, number tolerance = 1e-8 )

Açıklama

İki hareketli nokta sayısının neredeyse eşit olup olmadığını kontrol eder.

Bu, hafifletmek için yararlıdır. Değişken nokta numaralarında doğruluk sorunlarıAşağıdaki örneklere bakın.

Argümanlar

1. numara a)
Karşılaştırılacak ilk sayı.
2. numara b
Karşılaştırmak için ikinci sayı.
3. numara Dayanıklılık = 1e-8
İki sayı arasındaki en büyük fark onları eşit saymak için.

Geri dönüşler

1. Boolean
İki sayı arasındaki fark toleranstan küçük veya eşitse doğru.

Örnek

A olarak bilinen sorunu gösterir. Değişken nokta hatası, donanımdaki ondalık sayıların sınırlı hassasiyeti nedeniyle.

print( 0.1 + 0.2 == 0.3 ) - Bu da matematiksel olarak doğru. print( string.format( "%.32f", 0.1 + 0.2 ) ) -- 32 ondalık sayıya kadar sonuç verir.
Çıkış:
false 0.30000000000000004440892098500626

Örnek

Çözümleri gösterir. math.IsNearlyEqual().

print( math.IsNearlyEqual( 0.1 + 0.2, 0.3 ) ) print( string.format( "%.32f", 0.1 + 0.2 ) )
Çıkış:
true 0.30000000000000004440892098500626

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord