2009-10-19 23 views
14

Ondalık bir sayı var, 1234.500 deyin.Virgülle ayırıcıyı ondalığa (.net) ekleyin

Ben Im şu anda sondaki '0' kaldırmak için bir çift dönüştürerek 1,234.4

o görüntülemek için almak istiyorum.

string.Format ("{0: 0,0}", 1234.500) ondalık basamağı kaldırır ve diğer biçimlendirme seçenekleri ise, iki ondalık basamağı kullanmadığı görülür.

Herhangi biri fikir verebilir mi? xx = 1234.5M
gerçekten yardımcı olmaz, double için dönüştürme hakkında unutmak zaman

+0

Düzenleme, sadece açıklama 1234,560 için, ben 1,234.56 – maxp

+0

istiyorsun 1234'e kadar görüntülemek beklenebilir *. * 5 ** değil mi? Gönderiyi yansıtacak şekilde düzenleyin. – Amarghosh

+0

Yerel sistem ayarlarını kullanmak mı yoksa uygulamayı bu şekilde biçimlendirmek için mi zorlamak istiyorsunuz? –

cevap

18

Sen 1,234.50 üretecektir #,##0.00

string s = string.Format("{0:#,##0.00}", xx); 

gibi özel bir biçimlendirme kullanmalıdır.

+0

Sıfırın – maxp

+1

olmasını istemezseniz 1 veya daha fazla sıfırı kaldırın: #, ## 0. veya isteğe bağlı yapın: #, ## 0. # –

+0

Yardımlarınız için teşekkürler. – maxp

0

Bunu denediniz mi?

String.Format("{0:0,0.00}", 1234.560); 
+0

Sondaki sıfırları sıfırdan kaldırmaz - String.Format ("{0: 0,0.00}", 1234.5) komutunu kullanın. – maxp

6

diğer alternatif: Eğer farkında

decimal d = 1234.56m; 
string s = d.ToString("N"); // 1,234.56 
9

Are .NET yerleşik olduğu doğru uygulamanın her kullanıcının bölgesel ayarlarına göre sayıları biçimlendirme desteği? Kullanıcının kendi bölgesel ayarlarını kullanmak daha iyi olabilir (.NET çerçevesi zaten tüm doğru ayarları bilir). Bununla birlikte, uygulamanızı belirli bir bölgesel ayardaki sayıları biçimlendirmek üzere düzeltmek isterseniz, yine de, istediğiniz bir yerel ayarı seçebilir ve .NET'i tüm biçimlendirmenin temeli olarak kullanabilirsiniz (yalnızca sayılar için değil). :

using System.Globalization; 
using System.Threading; 
... 
CultureInfo us = new CultureInfo("en-US"); 

ve sonra

Thread.CurrentThread.CurrentUICulture = us; 

ya da sadece

Console.WriteLine(d.ToString("c", us)); 

Bir binlerce ayırıcı olarak virgül kullanılması İngiltere ve ABD için uygun olup bilmelidir ama binlerce başka ülkelerde

"1025 yılında 1.025 olarak görüntülenir görüntülenmesi gereken ne değildir Almanya'daki United Eyaletler ve 1.025. İsveç'te, binlerce ayırıcı onlar (siz daha fazla ayrıntı avlamak gerekir eğer hiç iyi bir arama terimi var yani) 'Küreselleşme' dediğimiz bu konuya

MSDN has dedicated section sadık bir boşluk" dir. O sayfa açıklamaktadır diyez işareti kullanılması (bir önceki yorumunda Henk Holterman önerdiği gibi) sondaki sıfırlar kaldırmak için bir basamak tutucu olarak çalışır.

Ayrıca bkz Custom Numeric Format Strings.

0

bu deneyin!

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
     Try 
      TextBox1.Text = Format(CInt(TextBox1.Text), "#,#") 
      TextBox1.SelectionStart = TextBox1.Text.Length 
     Catch ex As Exception 

     End Try 

End Sub 
0

bu deneyin:

string myNumber = string.Format("{0:#,0.00}", 1234.500); 

(ı RDLC bu gördüğüm raporları)

İlgili konular