PDA

View Full Version : [Help] Chuyển string thành float không làm tròn



ndp1007
25-01-2011, 14:29
Mình chuyển chuỗi "10.803883480711807" thành float,nên code như sau(C#) :

float f = float.Parse("10.803883480711807");
Kết quả Hiển thị trên C# là : f = 10.80388 chứ không là 10.803883480711807. Mình muốn y nguyên 10.803883480711807 thì phải dùng như thế nào. Có cách nào khác ngoài hàm float.Parse() không ?
Mong sự chia sẽ từ các bạn :)

megaownage
25-01-2011, 14:38
(C#)
float f = float.Parse("10.803883480711807");
double f1 = double.Parse("10.803883480711807");
decimal f2 = decimal.Parse("10.803883480711807");

lúc in ra:

f.ToString() : 10.80388
f1.ToString() : 10.8038834807118
f2.ToString() : 10.803883480711807

ndp1007
25-01-2011, 23:42
(C#)
float f = float.Parse("10.803883480711807");
double f1 = double.Parse("10.803883480711807");
decimal f2 = decimal.Parse("10.803883480711807");
lúc in ra:
f.ToString() : 10.80388
f1.ToString() : 10.8038834807118
f2.ToString() : 10.803883480711807
Em cứ lẩn quẩn quanh float, đọc Decsription cái tham số kèm theo sau hàm float.Parse(string,option) xem có hỗ trợ gì được không, đọc đọc rồi làm chẳng có kết quả gì.

Vốn dĩ là do em muốn lưu vào Database và trong Ms.SQL khi lưu giá trị 10.803883480711807
Nếu là Decimal : 11.
numeric : 11
Real : 10.8038836.
Chỉ có float mới nguyên giá trị 10.803883480711807.

Cũng vì vậy mà em cứ nghĩ là C# dùng kiểu float, nên cứ cắm đầu mà làm không nghĩ là máy kiểu kia dùng được .
Cũng cùng là Microsoft luôn mà sao trong VB, C# và Ms.SQL kiểu dữ kiệu nói lại khác xa thề kia !

Cảm ơn anh nhiều lắm, vấn đề đã được giải quyết :)