Merhaba arkadaşlar,
Geçenlerde bir projede Double yani 0.5 gibi olan bazı değerleri direkt olarak integere convert ettiğimde 0’a yuvarladığını gördüm.
Bunun önüne geçmek, her durumda yukarı yuvarlaması için Math.Round() methodunu kullandım.
Örnek ile göstermek gerekirse Integere direkt Convert ettiğimizde kodun çıktısı 0(Sıfır) olacaktır.
static void Main(string[] args) { int intNumber; intNumber = Convert.ToInt32(0.5); Console.WriteLine(intNumber.ToString()); Console.ReadKey(); }
Şimdi aşağıda ki Math.Round() Methodu ile sayıyı her durumda yukarı yuvarlama kodunu çalıştıralım.
static void Main(string[] args) { double Number1 = 0.5; double Number2 = Math.Round(Number1, MidpointRounding.AwayFromZero); Console.WriteLine(Number2.ToString()); Console.ReadKey(); }
MidpointRounding.ToEven yaparsak aşağı yuvarlar. Ama buna gerek yok zaten direkt convert edersek defaultta bunu yapıyor.
Teşekkürler…
Math’i kullanmaya gerek yok. Çıktıyı number.ToString(“N”) şeklinde değiştirin yeterli olacaktır.
Merhaba,
Number1.ToString() şeklinde direkt basarsak, string çıktıyı alırız 0.5 double değer için 0,5 yazar, yani yukarı yuvarlamaz.
Katkınız için teşekkür ederim.