C# klavyeden girilen ondalık sayıyı yuvarlamak

juka

Hectopat
Katılım
23 Mart 2017
Mesajlar
21
Daha fazla  
Cinsiyet
Erkek
Profil Kapağı
1522267462
C# ile klavyeden girilen ondalık sayının son hanesi >= 5 ise yukarıya, <5 ise aşağıya nasıl yuvarlayabilirim?

Örnek:
Giriş: 10.333337
Çıktı: 10.333340

Giriş: 10.333333
Çıktı: 10.333330
 
Son düzenleyen: Moderatör:
İf kullanarak diyeceğim fakat çok uzun olucak. En iyisi diğer arkadaşları beklemek.
 
System isim uzayının içerisinde bulunan Math sınıfından yararlanabilirsiniz.

C#:
double Value = Math.Round(Sayi);

Round fonksiyonu yuvarlama yapar ve değerin yuvarlanmış halini geri döndürür.
 
Aşağıdaki kodları kullanarak hallettim.

C#:
namespace ConsoleApplication17
{
    class Program
    {
        static void Main(string[] args)
        {
            string a, q;
            int x, y;
            string s1, s2, s3, s4;
            int g1;
            q = Console.ReadLine();
            x = q.Length;
            a = q.Substring(x - 1);
            y = Convert.ToInt32(a);
            s1 = q;
            s2 = s1.Remove(x - 2);
            s3 = s1.Substring(x - 2);
            s4 = s3.Remove(1);
            g1 = Convert.ToInt32(s4);
            if (y < 5)
            {
                Console.WriteLine(q.Remove(x - 1) + "0");
            }
            else
            {
                Console.WriteLine(s2 + (g1 + 1) + "0");
            }
            Console.ReadKey();
        }
    }
}
 

Bu kodu sakla bir yerlere. 3-5 sene sonra yazilimci olur da donup bakarsan sana iyi gelir.
 

Sanırım sırf rakam yuvarlayacağım diye Math.Round kullanmak yerine yazılan en gereksiz kodlardan birisini görüyorum.

Dostum neden böyle bir gereksinim ihtiyaç duydun ? Tek satır da halledebileceğin bir iş için satırlarca kod yazmanın ne anlamı var ?

Elinle kulağını tersten tutuyorsun, başka hiçbir şey değil
 
Sayıyı String'e çevirip Ali Cengiz oyunları çevirmişsiniz.
Bellekte 1 bitin bile değerli olduğunun bilincinde kod yazmanızı tavsiye ederim.
Stringler sandığınızın aksine "immutable" yapıdadırlar. Yani değiştirilemezler siz içindeki 1 char'ı bile silseniz tüm String baştan oluşturulur.
//
Yapmanız gereken tek şey
C#:
Math.Round();
Kullanmak.


İllaki bir şeylerle uğraşmak boş yere satır yazmak istiyorum diyorsan da.
virgünden sonraki rakam: 5 ve 5 den büyük ise Ceil() değil ise Floor() yapabilirsiniz.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…