2013-02-25 29 views
5

double değerini string içine ayrıştırmak istiyorum. Numaramın belirli bir sayıya sahip olmasını istiyorum (çalışma zamanına kadar bilmeyeceğim). Bu sayı basamak sayısı sıfıra eşit olmayan bir değerle ifade edilebilirse, istediğim budur. Sayı sıfır gibi çıkarsa, bunun bilimsel gösterimde ifade edilmesini istiyorum.Sadece gösterim gerekiyorsa bilimsel gösterimi kullanın

Değer: 0,2367 Çıktı: "0.23"

Değer: 0,00367 Çıktı:

bazı örnekler daha açık hale getirecek, bu şimdiye 3 basamak istediğini varsayar "3.67E-3"

Değer: 22.3 Çıktı: "22.3"

Değer: 3364,0 Çıktı: çözümü etrafında İşim ToString() yöntem ve Nnumeric format string kullanmak ve sıfır sonuçlanması durumunda en E biçim dizesi dönmek

"3.36E3", ama bu, tekerleği yeniden icat etmek gibi geliyor. Bunu yapmak için yerleşik bir yöntem olup olmadığını bilen var mı?

+2

Eğer 2.37e-1 ilki için istemez mi? –

+0

Aslında benim tercihim, tüm değerler 0 ise, sadece bilimsel gösterimi kullanmak olacaktır, ancak her iki şekilde de yeterli olacaktır. – Fr33dan

cevap

14

General Number Format Specifier'u kullanarak incelediniz mi?

genel

("G") biçiminde belirteci sayısının tipine ve hassas bir belirteci mevcut olup olmamasına bağlı olarak, sabit nokta veya bilimsel gösterim ya en kompakt bir numara çevirir. belgelerinden

Bazı örnekler:

double number; 

number = .0023; 
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture)); 
// Displays 0.0023 

number = 1234; 
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture)); 
// Displays 1.2E+03 

number = Math.PI; 
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture)); 
// Displays 3.1416 
+0

Bu belgede bunu nasıl görmeyi başarabileceğimi bilmiyorum. – Fr33dan

İlgili konular