Double to string

Başlatan mir_as82, 14 Aralık 2019, 16:24:08

mir_as82

Noktadan sonra sabit uzunlukta olmayan değerler için,
Örneğin
12345.0
12345.000
123.1
123445.12345
Gibi sayılarda noktadan sonraki rakamları kaybetmeden nasıl strine çeviririm?

semihel

string ifadeye dönüştürme işlemini şu şekilde yapabilirsin örneğin, char string[10]; ve ardından sprintf(string,".5f",float_deger); .5f demek float değerin virgülden sonra 5 basamak al demek.

OptimusPrime

https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

HAKKITANIR

atama yapmadan önce atanacak değişkenin önüne (float) veya (double) yada (strine) yazımlarını bir deneseniz belki olabiliyordur. parantez içinde hangi tipde atanacağına yarıyor gibi bir şey vardı.

mir_as82

Benim atama yapmada sorunum yok
Benim derdim değişken uzunlukta virgülden sonra 0 a sahip değişkenlerin stringe çevrilirken en fazla 6 haneye kadar olan sıfırlarını muhafaza etmek
Maksimum 6 hane almayı kabul edelim, virgülden sonrası için
Yani:
123.0=>"123.0"
123.000=>"123.000"
123.000000=>"123.000000"
123.000000000000="123.000000"
Ayrıca dili belirtmemişim
C# ile yapmak istiyorum.

HAKKITANIR

C# hiç bilmiyorum.

float olarak denemişsinizdir herhalde değişkeni ilk tanımlarken.
şöyle bir şey deneseniz;

double X = 0.000000; veya float X = 0.000000;
string Y = "a";
.
// X içeriği programda değişir.
.
Y = (double) X;
Y = (float) X;
 
aklıma birde değişkeni sabit bir altı hane virgüllü bir sayıyla and or gibi işlemlere tabi tutmak gibi birşeyler geliyor ama;
aması sadece geliyor. ötesi çıkmıyor. matematiksel bir şeyle muhakkak yapılır herhalde. matematik uzmanı ilgi alanına girebilir belki konu.




 

Gediz1337

Round-trip format stringi kullanabilirsiniz. Performans endişeniz varsa, double değerler kullanırken "R" yerine "G17" yazmanız daha hızlı olabilir.

double raw = 0.0123456789;
string str = raw.ToString("G17");

double reparsed = double.Parse(str);

Console.WriteLine($"data:\t\t{raw}");
Console.WriteLine($"string:\t\t{str}");
Console.WriteLine($"after parse:\t{reparsed}");

Çıktı:
data:           0.0123456789
string:         0.0123456789
after parse:    0.0123456789