Bildirimler

Float'da Noktadan Sonra Kaç Basamak Gösterileceği

35 Görüntülenme 2018-04-22 Unity
Float'da Noktadan Sonra Kaç Basamak Gösterileceği

Bu yazıda Unity'de float bir değeri gösterirken noktadan sonra kaç basamağın gösterileceğini ayarlamayı göstereceğim. Bunun için bir fonksiyonla bunu String'e çevirebiliriz, Int'e çevirebiliriz veya kendi fonksiyonumuzu yazabiliriz.

Zaman gibi değişkenleri UI ile ekranda göstermek isteyebiliriz. Ama zaman vs. değişkenler float türüdür ve float noktadan sonra 5 basamağı tuttuğundan ekrana 5 basamak da gelir. Bu yüzden şöyle bir sonuçla karşılaşabiliriz.

float basamaktan sonrasını gösterme

Bu durumda noktadan sonraki basamağı azaltmak veya kaldırmak iyi bir çözümdür. Bunu yapmak için:

  • Float'ı int'e çeviren (bu sayede noktadan sonrasını göstermeyen) bir fonksiyon kullanabiliriz
  • Float'ın noktadan sonra kaç basamağını istiyorsak alıp string yapan bir fonksiyon kullanabiliriz
  • Kendi fonksiyonumuzu yazabiliriz

Float'ı int'e çeviren fonksiyon

Float'ı int'e çevirmek için aşağıdaki şekilde kod kullanılır.

float sayi = 23.43255f;
Debug.Log ((int) sayi);
//Konsola 23 yazar.

Float'ın noktadan sonra basamaklarını alan fonksiyon

Bu fonksiyon float'ın bir metod'u dur. Yani degisken.fonksiyon(); olarak kullanılır. Bu fonksiyon float'ı string'e çevirir ve bir string değer alır.

float sayi = 23.43255f;
Debug.Log (sayi.ToString ("F2"));
//Konsola 23.43 yazar.

Bu yazdığım fonksiyon float'ın noktadan sonraki iki basamağını alır. Ve son basamağı yazarken rakamı yuvarlama yapar. Örneğin 35.65437 float değerini 35.65 şeklinde bir string yapar. Mesela noktadan sonra 3 basamağını istiyorsanız parametre kısmına "F3" yazarsınız. 4 Basamak için "F4", 5 basamak için "F5" şeklinde.

Kendi fonksiyonunuzu yazın

Kesinlikle zor değil. Tek yapacağımız bir operatörden faydalanmak. % operatörü bildiğiniz gibi sayıyı sayıya bölüp kalanı gösterir. Mesela noktadan sonrasını görmek istemiyorsak float'ı 1'e bölerek kalanı alırız ve sayıdan çıkarırız. Böylece tam sayı kısmı kalır. Tabiki işlem önceliği için bir de parantez () kullanırız.
Ör/ float virgulsuz = sayi - (sayi % 1); Veya noktadan sonra bir basamak istiyorsak:

float sayi = 23.43255f;
Debug.Log ( sayi - (sayi % 0.1f) );
//Konsola 23.4 yazar.

Virgülden sonra iki basamak görmek için sayi - (sayi % 0.01f); kullanılır. İsterseniz bu kodları fonksiyona da çevirebilirsiniz.

Önerilen Gönderiler

Yorum Bölümü
İsim:
Mail:
Yorum: