01/10/2018, 00:39
Số thực, số thập phân trong C#
Chào mọi người trong Diễn đàn ạ.
Em muốn hỏi là khi em sử dụng kiểu dữ liệu double, float, hoặc decimal có một số vấn đề khó hiểu.
Khi em muốn nhập vào một số kiểu float.
float x = float.Parse(Console.Readline());
Console.Writeline(x);
Em nhập vào số là 0.003 thì kết quả in ra màn hình lại là 3.
Em cũng không so sánh được hai số kiểu double, float hay decimal.
Mong mọi người giải thích giúp em với ạ.
Em cảm ơn ạ.
Bài liên quan
Mình làm thử vẫn bình thường, không có vấn đề gì cả, không biết bên bạn compiler bị gì?
Hàm
float.parse
thì có hàm tương tự làConvert.ToSingle
.Hàm
double.parse
thì có hàm tương tự làConvert.ToDouble
.Mình sẽ gọi tổng quát hai hàm này lần lượt là: type.parse và Convert.To…
double
là kiểu dữ liệu không đượcnull
.type.parse
sẽ ép kiểustring
thành kiểutype
, nó không thể ép giá trị nhưnull
sang kiểutype
, cònConvert.To...
thì làm được, nó sẽ tìm giá trị thích hợp nhất khi ép kiểu, ví dụnull
sẽ là0.0
(đối với kiểu double).Chúc bạn học tốt!
Cảm ơn bạn rất nhiều. Mình dùng bản Visual Studio 2012 ulimate. Mình sẽ thử kiểm tra lại. Hoặc cài compiler khác.
Chúc bạn học tốt :)))
Mình ko hiểu. Nhưng đổi thành nhập vào 0,002 thì lại được. :))) cứ nghĩ do cài đặt của máy. Nhưng viết lại = C++ thì lại nhập vào 0.002 mới được. :)))
Lạ thật :)))
Kiểm tra lại Language and Region trên máy tính. Với mỗi vùng miền thì người ta quy định chức năng dấu (.) và (,) là khác nhau. Nó sẽ ảnh hưởng đến kết quả các hàm chuyển đổi.
Em cảm ơn anh ạ :)))