PDA

View Full Version : Tạo Dấu phẩy ngăn cách thập phân trong asp.net



tuanhaikh
23-01-2010, 09:29
Mình muốn cột giá khi nhập vào 100000 thì trở thành 100,000 hay 100.000 thì phải làm sao nhỉ (asp.net)

BoTayConGaQuay
23-01-2010, 09:45
Bác dùng CultureInfo đi:

int.Parse("100000", NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign, new CultureInfo("vi-VN"));

sẽ cho ra: 100.000

Hoặc:

int.Parse("100000", NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign, new CultureInfo("en-US"));

sẽ cho ra: 100,000

tuanhaikh
23-01-2010, 10:08
Tức là thế này

Cột GIÁ mình tổ chức kiểu dữ liệu là float nên không thể insert vào có dấu , hay . được. Nên mình giải quyết thế này : khi nhập vào thì vẫn nhập là 100000 nhưng khi đổ dữ liệu ra gia diện thì đổ ra là 100,000.

Mình viết bằng VB

Mình đã dùng thử code bạn post nhưng nó báo lỗi NumberStyles và CultureInfo không biết có cần kahi báo thư viện gì không bạn.

Giúp mình thêm nhé

thuyduongcd
23-01-2010, 11:31
Sử dụng hàm FormatNumber() của VB mà định dạng nó

BoTayConGaQuay
23-01-2010, 11:44
Tức là thế này

Cột GIÁ mình tổ chức kiểu dữ liệu là float nên không thể insert vào có dấu , hay . được. Nên mình giải quyết thế này : khi nhập vào thì vẫn nhập là 100000 nhưng khi đổ dữ liệu ra gia diện thì đổ ra là 100,000.

Mình viết bằng VB

Mình đã dùng thử code bạn post nhưng nó báo lỗi NumberStyles và CultureInfo không biết có cần kahi báo thư viện gì không bạn.

Giúp mình thêm nhé

Code trên là C# bác ạ, để chạy bác cần import namespace System.Globalization vào. Trong C# thì nó là:

using System.Globalization;

VB thì tui...mù :D

tuanhaikh
28-01-2010, 16:43
Cái hàm FormatNumber() sử dụng sao bạn thuyduong cho vd cụ thể được không

thuyduongcd
29-01-2010, 16:43
document.write(FormatNumber(20000))
kết quả -> 20,000.00
Tham khảo thêm hàm này tại đây:
http://w3schools.com/vbscript/func_formatnumber.asp

ttson24
04-06-2010, 11:41
sao mình dùng CultureInfo không được vậy. đã thêm thư viện using System.Globalization; rùi.
cú pháp:
int.Parse("100000", NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign, new CultureInfo("en-US"));
bạn nào biết, giúp mình với. Đang cần gấp...

bachnga
04-06-2010, 11:57
sao mình dùng CultureInfo không được vậy. đã thêm thư viện using System.Globalization; rùi.
cú pháp:
int.Parse("100000", NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign, new CultureInfo("en-US"));
bạn nào biết, giúp mình với. Đang cần gấp...

Bạn xem thử:


double x = 1982345.876;
string s = string.Format( "{0:N2}",x);//Đã format