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 ạ.

viết 02:52 ngày 01/10/2018

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.parseConvert.To…
double là kiểu dữ liệu không được null.
type.parse sẽ ép kiểu string thành kiểu type, nó không thể ép giá trị như null sang kiểu type, còn Convert.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!

Mưa Lạnh viết 02:51 ngày 01/10/2018

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ưa Lạnh viết 02:47 ngày 01/10/2018

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 :)))

Văn Dương viết 02:41 ngày 01/10/2018

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.

Mưa Lạnh viết 02:44 ngày 01/10/2018

Em cảm ơn anh ạ :)))

Bài liên quan
0