Bagaimana cara memformat a Double
ke String
dalam C # sehingga hanya memiliki dua tempat desimal?
Jika saya menggunakan String.Format("{0:0.00}%", myDoubleValue)
angka maka dibulatkan dan saya ingin memotong sederhana tanpa pembulatan. Saya juga ingin konversi String
menjadi peka terhadap budaya.
Jawaban:
Saya menggunakan yang berikut ini:
Misalnya:
Jika jumlahnya 50,947563 dan Anda menggunakan yang berikut, yang berikut ini akan terjadi:
Dan ada jawaban Anda yang terpotong, sekarang untuk memformat string cukup lakukan hal berikut:
sumber
string.Format
langkah yang sama dengan memformat string. Lihat jawaban saya di bawah ini.Angka -angka berikut ini membulatkan angka, tetapi hanya menampilkan hingga 2 tempat desimal (menghilangkan sembarang angka nol), terima kasih
.##
.http://dobrzanski.net/2009/05/14/c-decimaltostring-and-how-to-get-rid-of-trailing-zeros/
sumber
Saya sarankan Anda memotong dulu, lalu format:
Gunakan konstanta 100 untuk 2 digit terpotong; gunakan angka 1 diikuti angka nol setelah angka desimal yang Anda inginkan. Gunakan nama budaya yang Anda butuhkan untuk menyesuaikan hasil pemformatan.
sumber
new CultureInfo("de-DE")
, Anda harus menggunakan properti statisCulture.InvariantCulture
Metode paling sederhana, gunakan string format numerik:
sumber
saya gunakan
price.ToString("0.00")
untuk mendapatkan 0s terkemukasumber
Fungsi c #, seperti yang diungkapkan oleh Kyle Rozendo:
sumber
Bagaimana dengan menambahkan satu desimal tambahan yang dibulatkan dan kemudian dibuang:
sumber
Ini bekerja untuk saya
sumber
Saya tahu ini adalah utas lama tetapi saya hanya harus melakukan ini. Sementara pendekatan lain di sini berfungsi, saya ingin cara mudah untuk dapat memengaruhi banyak panggilan
string.format
. Jadi menambahkanMath.Truncate
semua panggilan tidak benar-benar pilihan yang baik. Juga karena beberapa format disimpan dalam database, itu membuatnya lebih buruk.Jadi, saya membuat penyedia format kustom yang memungkinkan saya untuk menambahkan pemotongan ke string pemformatan, misalnya:
Implementasinya cukup sederhana dan mudah diperluas ke persyaratan lain.
sumber
Saya punya masalah dengan Formulir Xamarin dan menyelesaikannya dengan ini:
sumber
Untuk nilai apa, untuk menunjukkan mata uang, Anda dapat menggunakan
"C"
:Keluaran:
$1.99
sumber
Anda juga bisa menulis IFormatProvider Anda sendiri , meskipun saya kira pada akhirnya Anda harus memikirkan cara untuk melakukan pemotongan yang sebenarnya.
Setidaknya itu akan mudah digunakan kembali.
Ada artikel tentang cara menerapkan IFormatProvider / ICustomFormatter Anda sendiri di sini di CodeProject . Dalam hal ini, "memperluas" format numerik yang ada mungkin merupakan taruhan terbaik. Itu tidak terlihat terlalu sulit.
sumber
Mengikuti dapat digunakan hanya untuk tampilan yang menggunakan properti String ..
sumber
Larutan:
sumber
Perhatikan juga Informasi Budaya sistem Anda. Di sini solusi saya tanpa pembulatan.
Dalam contoh ini Anda hanya perlu mendefinisikan variabel MyValue sebagai ganda. Akibatnya, Anda mendapatkan nilai yang diformat dalam variabel string NewValue .
Catatan - Juga mengatur pernyataan menggunakan C #:
sumber