Khóa học lập trình C# căn bản

Serial tutorial hướng dẫn lập trình C# cơ bản

Ép kiểu trong C# Ép kiểu trong C# Ép kiểu trong C# Ép kiểu trong C# Ép kiểu trong C# 4.8/5 (279 reviews)

Ép kiểu trong C#

Đã đăng 2016-09-13 07:10:23 bởi Trần Thành Vi Thanh
22 bình luận 44638 lượt xem
Ép kiểu trong C# 4.8 /5 stars (13 reviews)
 

Dẫn nhập

Ở bài TOÁN TỬ TRONG C# chúng ta đã một câu lệnh như sau: SoNguyen = Int32.Parse(strSoNguyen) kèm theo dòng chú thích “Ép kiểu dữ liệu vừa nhập vào (dạng chuỗi) sang dạng số rồi gán giá trị vào biến SoNguyen”.

Vậy “ép kiểu” là gì? Sử dụng chúng như thế nào? Bài học hôm nay sẽ giúp chúng ta trả lời những câu hỏi này – Ép kiểu trong C#.


Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:

 Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:

  • Ép kiểu là gì? Tại sao phải ép kiểu?
  • Có mấy loại ép kiểu? Cách sử dụng từng loại?
  • Ví dụ chương trình sử dụng ép kiểu.

Ép kiểu là gì? Tại sao phải ép kiểu?

Ép kiểu là biến đổi dữ liệu thuộc kiểu dữ liệu này thành kiểu dữ liệu khác.

Tại sao phải ép kiểu?

  • Để chuyển dữ liệu sang một kiểu dữ liệu mong muốn phục vụ cho việc thao tác xử lý.
  • Đưa dữ liệu về định dạng mà mình mong muốn (ví dụ chuyển kiểu ngày tháng bên Mỹ sang dạng ngày tháng bên Việt Nam).

Có mấy loại ép kiểu? Cách sử dụng từng loại

Trong C#, ép kiểu có 4 loại:

  • Chuyển đổi kiểu ngầm định (implicit).
  • Chuyển đổi kiểu tường minh (explicit).
  • Sử dụng phương thức, lớp hỗ trợ sẵn:
    • Dùng phương thức Parse(), TryParse().
    • Dùng lớp hỗ trợ sẵn (Convert).
  • Người dùng tự định nghĩa kiểu chuyển đổi.

Chuyển đổi kiểu ngầm định (implicit)

Việc chuyển đổi này được thực hiện bởi trình biên dịch và chúng ta không cần tác động gì.

Được thực hiện khi chuyển kiểu từ

Ví dụ:

int intValue = 10;
long longValue = intValue; /* Chuyển kiểu ngầm định vì kiểu long có miền giá trị lớn hơn kiểu int nên có thể chuyển từ int sang long.*/
float floatValue = 10.9f;
double doubleValue = floatValue; /* Tương tự vì kiểu double có miền giá trị lớn hơn kiểu float nên có thể chuyển từ float sang double.*/ 

Chuyển đổi kiểu tường minh (explicit)

Chuyển đổi kiểu tường minh là việc chuyển kiểu một cách rõ ràng và dùng từ khóa chỉ định chứ không dùng phương thức.

Một số đặc điểm của chuyển đổi kiểu tường minh:

  • Thường được dùng để chuyển đổi giữa các kiểu dữ liệu có tính chất tương tự nhau (thường thì với số).
  • Hỗ trợ trong việc boxing và unboxing đối tượng (sẽ được trình bày trong bài KIỂU DỮ LIỆU OBJECT TRONG C#).
  • Cú pháp ngắn gọn do không sử dụng phương thức.
  • Chỉ khi chúng ta biết rõ biến đó thuộc kiểu dữ liệu nào mới thực hiện chuyển đổi. Ngược lại có thể lỗi khi chạy chương trình.

Cú pháp:

(<kiu d liu>) <biến cần ép kiểu>

  • <kiểu d liệu> là kiểu dữ liệu mà mình muốn chuyển sang.
  • <biến cần ép kiểu> là biến chưa dữ liệu cần ép kiểu.
  • Phải có cặp dấu ngoặc tròn ( ).

Ý nghĩa:

Ép kiểu của <biến cần ép kiểu> về <kiu d liu> nếu thành công sẽ trả ra giá trị kết quả ngược lại sẽ báo lỗi chương trình. Đặc biệt đối với số:

  • Ta có thực hiện ép kiểu dữ liệu lớn hơn về kiểu dữ liệu nhỏ hơn mà không báo lỗi.
  • Nếu dữ liệu cần ép kiểu vượt quá miền giá trị của kiểu dữ liệu muốn ép kiểu về thì chương trình sẽ tự cắt bit cho phù hợp với khả năng chứa kiểu dữ liệu đó (cắt từ bên trái qua).

Ví dụ:

int i = 300; // 300 có mã nhị phân là 100101100
byte b = (byte)i; 
/* do kiểu byte có giới hạn đến giá trị 255 thôi nên không thể chứa số 300 được mà kiểu byte có kích thước là 1 bytes tương đương 8 bit. Như vậy ta cần cắt mã nhị phân của số 300 về còn 8 bit là được. Mã nhị phân 300 là 100101100 cắt từ trái qua 1 bit ta được 00101100 (đủ 8 bit) tương đương với số 44. Cuối cùng biến b sẽ mang giá trị là 44.*/

Console.WriteLine(" i = " + i);
Console.WriteLine(" b = " + b);

 Kết quả khi chạy chương trình trên:

Kteam

Việc ép kiểu thế này làm mình nhớ lại một vấn đề nho nhỏ sau: Ở bài TOÁN TỬ TRONG C# ta có nói là toán tử “/” là thực hiện chia lấy phần nguyên nếu cả 2 toán hạng đều là số nguyên. Vậy nếu chúng ta muốn chia ra kết quả chính xác luôn thì phải làm sao?

  • Ý tưởng đơn giản là ta ép kiểu 1 trong 2 toán hạng đó về dạng số thực là xong.
  • Cách khác, ta có thể làm đơn giản là nhân 1 trong 2 toán hạng với số 1.0 cũng sẽ cho ra kết quả như ý muốn.
  • Ví dụ:
double d = 2 / 3; // kết quả ra 0 vì 2 và 3 đều là số nguyên nên thực hiện 2 chia lấy phần nguyên với 3 được 0
            double k = (double)2 / 3; // Ép kiểu số 2 từ kiểu nguyên sang kiểu số thực. Như vậy kết quả phép chia sẽ ra số thực
            double t = 1.0 * 2 / 3; // Thực hiện nhân 1.0 với 2 mục đích để biến số 2 (số nguyên) thành 2.0 (số thực)

            Console.WriteLine(" d = {0} \n k = {1} \n t = {2}", d, k, t);

 

  •  Kết quả khi chạy chương trình thì biến k và biến t đều cho giá trị như nhau:

Kteam

 


Sử dụng phương thức, lớp hỗ trợ sẵn

Phương thức Parse(), TryParse()

Parse()

Cú pháp:

<kiu d liệu>.Parse(<dữ liệu cần chuyển đổi>);

  • <kiểu d liệu> là kiểu dữ liệu cơ bản mình muốn chuyển đổi sang.
  • <dữ liệu cần chuyển đổi> là dữ liệu thuộc kiểu chuỗi, có thể là biến kiểu chuỗi hoặc giá trị hằng kiểu chuỗi (giá trị hằng đã giải thích trong bài HẰNG TRONG C#).

Ý nghĩa:

  • Chuyển đổi một chuỗi sang một kiểu dữ liệu cơ bản tương ứng.
  • Phương thức trả về giá trị kết quả chuyển kiểu nếu chuyển kiểu thành công. Ngược lại sẽ báo lỗi chương trình.

Ví dụ:

string stringValue = "10";
            int intValue = int.Parse(stringValue); // Chuyển chuỗi stringValue sang kiểu int và lưu giá trị vào biến intValue - Kết quả intValue = 10
            double HowKteam = double.Parse("10.9"); // Chuyển chuỗi giá trị hằng "10.9" sang kiểu int và lưu giá trị vào biến HowKteam - Kết quả HowKteam = 10.9

 


TryParse()

Cú pháp:

<kiu d liệu>.TryParse(<dữ liệu cần chuyển đổi>, out <biến chứa kết quả>);

  • <kiểu d liệu> là kiểu dữ liệu cơ bản mình muốn chuyển đổi sang.
  • <dữ liệu cần chuyển đổi> là dữ liệu thuộc kiểu chuỗi, có thể là biến kiểu chuỗi hoặc giá trị hằng kiểu chuỗi.
  • <biến chứa kết quả> là biến mà bạn muốn lưu giá trị kết quả sau khi chuyển kiểu thành công. Từ khóa out là từ khóa bắt buộc phải có, ý nghĩa của từ khóa này sẽ được trình bày chi tiết trong bài HÀM TRONG C#.

Ý nghĩa:

  • Chuyển một chuỗi sang một kiểu dữ liệu cơ bản tương ứng.
  • Phương thức sẽ trả về true nếu chuyển kiểu thành công và giá trị kết quả chuyển kiểu sẽ lưu vào <biến chứa kết quả>. Ngược lại sẽ trả về false <biến chứa kết quả> sẽ mang giá trị 0.

Ví dụ:

int Result; // Biến chứa giá trị kết quả khi ép kiểu thành công
bool isSuccess; // Biến kiểm tra việc ép kiểu có thành công hay không
string Data1 = "10", Data2 = "Kteam"; // Dữ liệu cần ép kiểu

isSuccess = int.TryParse(Data1, out Result); // Thử ép kiểu Data1 về int nếu thành công thì Result sẽ chứa giá trị kết quả ép kiểu và isSuccess sẽ mang giá trị true. Ngược lại Result sẽ mang giá trị 0 và isSuccess mang giá trị false
Console.Write(isSuccess == true ? " Success !" : " Failed !"); // Sử dụng toán tử 3 ngôi để in ra màn hình việc ép kiểu đã thành công hay thất bại.
Console.WriteLine(" Result = " + Result); // In giá trị Result ra màn hình

isSuccess = int.TryParse(Data2, out Result); // Tương tự như trên nhưng thao tác với Data2
Console.Write(isSuccess == true ? " Success !" : " Failed !"); // Tương tự như trên
Console.WriteLine(" Result = " + Result); // Tương tự như trên

           

            Kết quả khi chạy đoạn ví dụ trên là

Kteam

Vì Data1 có thể ép kiểu về int nên kết quả thành công và in giá trị ra. Còn Data2 không thể ép kiểu về kiểu int nên kết quả không thành công và in ra giá trị 0.

 

Lưu ý khi sử dụng Parse() TryParse():

  • Tham số truyền vào phải là một chuỗi.
  • Cả 2 phương thức được gọi thông qua tên kiểu dữ liệu.
  • Parse() trả về giá trị kết quả ép kiểu nếu ép kiểu không thành công thì sẽ báo lỗi. Còn TryParse() trả về xem ép kiểu có thành công hay không, giá trị kết quả ép kiểu sẽ nằm trong <biến chứa kết quả>.
  • Ngoài TryParse() ra thì vẫn có một cách ép kiểu không báo lỗi chương trình. Đó là sử dụng toán tử as:
    • Trong bài TOÁN TỬ TRONG C# chúng ta có giới thiệu toán tử as dùng để “Ép kiểu mà không gây ra lỗi. Nếu ép kiểu không thành công sẽ trả về null”.
    • Chỉ áp dụng cho việc chuyển kiểu giữa các kiểu tham chiếu tương thích (thường là các kiểu có quan hệ kế thừa (sẽ được trình bày ở bài TÍNH KẾ THỪA TRONG C#)) hoặc các kiểu nullable (là các kiểu có thể chứa giá trị null).
    • Qua bài KIỂU DỮ LIỆU OBJECT TRONG C# mình sẽ ví dụ rõ hơn.

Lớp hỗ trợ sẵn (Convert)

Convert là lớp tiện ích được C# hỗ trợ sẵn cung cấp cho chúng ta nhiều phương thức chuyển đổi kiểu dữ liệu.

Các đặc điểm của các phương thức trong lớp Convert:

  • Tham số truyền vào của các phương thức không nhất thiết là chuỗi (có thể là int, bool, . . .).
  • Nếu tham số truyền vào là null thì các phương thức sẽ trả về giá trị mặc định của kiểu dữ liệu.
  • Các trường hợp tham số truyền vào sai định dạng hoặc vượt quá giới hạn thì chương trình sẽ báo lỗi như phương thức Parse().

Một số phương thức chuyển kiểu mà Convert có:

  • Các phương thức chuyển kiểu trong lớp Convert đều có thể nhận các kiểu dữ liệu cơ bản (int, bool, byte, . . .) làm tham số truyền vào.
  • Ở bảng trên mình chỉ liệt kê những phương thức hay dùng. Để tìm hiểu thêm các phương thức chuyển kiểu khác các bạn có thể sử dụng tính năng gợi ý của Visual Studio:
    • Đầu tiên các bạn gõ “Convert.” (lưu ý dấu chấm liền sau Convert)
    • Visual Studio sẽ hiển thị ra tất cả các phương thức có trong lớp Convert. Giờ bạn chỉ việc lựa chọn phương thức muốn sử dụng là được.

Kteam

 


Người dùng tự định nghĩa kiểu chuyển đổi

Khi chúng ta tạo ra một kiểu dữ liệu mới chúng ta cũng cần định nghĩa các chuyển đổi kiểu dữ liệu từ kiểu cơ bản sang kiểu tự định nghĩa và ngược lại.

Nhưng trong phạm vi kiến thức hiện tại thì mình chỉ có thể giới thiệu cho các bạn biết là mình có thể tự định nghĩa kiểu chuyển đổi còn việc thực hiện như thế nào sẽ được trình bày trong bài CLASS TRONG C#.


Ví dụ chương trình sử dụng ép kiểu

Ở các phần trên mình đều có trình bày ví dụ minh họa và giải thích chi tiết rồi nên các bạn xem lại.

Ví dụ: viết chương trình nhập vào 2 số a và b sau đó in ra tổng, hiệu, tích, thương của 2 số đó

Gợi ý/Hướng giải quyết bài toán ví dụ:

  • Đầu tiên ta yêu cầu người dùng nhập vào 2 số a và b (lúc này giá trị nhập vào đang ở kiểu chuỗi).
  • Ép kiểu giá trị vừa nhập vào kiểu chuỗi. Nếu thất bại sẽ thông báo lỗi và kết thúc chương trình, ngược lại thì thực hiện tiếp.
  • Tính tổng, hiệu, tích, thương thì 2 số đó và in kết quả ra màn hình.

Chương trình minh họa:

            int A, B; // Biến chứa giá trị 2 số vừa nhập vào (kiểu số)
            int Tong, Hieu, Tich; // Biến chứa kết quả tổng, hiệu, tích
            double Thuong; // Vì phép chia có thể cho ra số thập phân nên dùng biến kiểu double để chứa nó.
            string strA, strB; // Biến chứa giá trị 2 số nhập vào từ bàn phím (kiểu chuỗi)

            Console.WriteLine("         **************************************************");
            Console.WriteLine("         *                                         			       *");
            Console.WriteLine("         *   Chuong trinh tinh tong, hieu, tich, thuong  *");
            Console.WriteLine("         *                                            		       *");
            Console.WriteLine("         **************************************************");

            Console.Write("\n Moi ban nhap so A: ");
            strA = Console.ReadLine(); // Nhận giá trị nhập vào từ bàn phím cho số A
            Console.Write(" Moi ban nhap so B: ");
            strB = Console.ReadLine(); // Nhận giá trị nhập vào từ bàn phím cho số B

            A = int.Parse(strA); // Ép kiểu giá trị nhập vào từ kiễu chuỗi sang kiểu số nguyên, sử dụng phương thức Parse()
            B = int.Parse(strB); // Tương tự

            Tong = A + B;
            Hieu = A - B;
            Tich = A * B;
            Thuong = (double)A / B; // Ép kiểu số A về số thập phân để phép chia cho ra số thập phân

            Console.WriteLine(" Tong = " + Tong);
            Console.WriteLine(" Hieu = " + Hieu);
            Console.WriteLine(" Tich = " + Tich);
            Console.WriteLine(" Thuong = " + Thuong);

 Kết quả khi chạy chương trình trên:

Kteam

  • Các bạn để ý 2 trường hợp ép kiểu trong ví dụ trên, đó là 2 trường hợp thường gặp nhất của ép kiểu được sử dụng trong hầu hết các chương trình tính toán từ đơn giản đến phức tạp.
  • Một vấn đề xảy ra trong ví dụ trên là “nếu người dùng không nhập vào một số mà lại nhập chữ hoặc bỏ trống thì sao?”
    • Khi đó chương trình sẽ bị lỗi ngay:

Kteam

  • Lúc này ta nghĩ ngay đến phương thức TryParse() để giải quyết vấn đề trên. Nào hãy thử tự giải quyết và gửi lại bài giải ngay cho mình kiểm tra nhé. Chúc các bạn thành công!

Kết luận

Nội dung bài này giúp các bạn nắm được:

  • Khái niệm về ép kiểu và tại sao phải ép kiểu.
  • Các loại ép kiểu và cách sử dụng.
  • Ví dụ về sử dụng ép kiểu.

Bài học sau chúng ta sẽ cùng tìm hiểu một khái niệm tiếp theo đó là CẤU TRÚC IF - ELSE TRONG C#

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

 

 



Tài liệu 

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Ép kiểu trong C# dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên like hoặc +1 Google để ủng hộ Kteam và tác giả nhé! 


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. 

 

Chia sẻ:
Thảo luận Hỏi và đáp Báo lỗi bài viết
Hủy bỏ   hoặc  
Ép kiểu trong C#
QDchannel 2018-11-13 10:47:18

phần này khó hiểu thế :((

0 bình chọn
Reply
Ép kiểu trong C#
Lê Văn Vượng 2018-10-12 23:19:24

namespace EP_KIEU
{
    class ep_kieu
    {
        static void Main(string[] args)
        {
            #region
            Console.WriteLine("-----BAI TOAN VE TONG HIEU TICH THUONG-----");
            int A,B;
            int TONG, HIEU, TICH;
            double THUONG;
            string strA, strB;
            bool nhap;

            Console.Write("Xin moi nhap so A = ");
            strA= Console.ReadLine();
            nhap =int.TryParse(strA, out A);
            Console.Write(nhap == true ? "" : "\nNhap sai roi\n");
            Console.Write("Xin moi nhap so B = ");
            strB= Console.ReadLine();
            nhap =int.TryParse(strB, out B);
            Console.Write(nhap == true ? "" : "\nNhap sai roi\n");

            TONG = A + B;
            HIEU = A - B;
            TICH = A * B;
            THUONG = A / (double)B;

            Console.WriteLine("Ket qua: \nTong= {0}\nHieu= {1}\nTich= {2}\nThuong= {3}", TONG, HIEU, TICH, THUONG);

            Console.ReadKey();
                        

            #endregion
        }
    }
}
 

0 bình chọn
Reply
Ép kiểu trong C#
palladium88 2018-09-19 20:04:52

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            int a, b;
            string A, B;
            float Thuong;
            int Tong, Hieu, Tich;
            bool Kta, Ktb;

            Console.Write("Nhap a: ");
            A = Console.ReadLine();
            Kta = int.TryParse(A, out a);
         
            if (Kta == false)
            {
                for (int i = 1; i < 5 && Kta == false; i++)
                {
                    Console.Write("Ban con {0} lan nhap. Nhap a lai lan nua ", 5 - i);
                    A = Console.ReadLine();
                    Kta = int.TryParse(A, out a);
                }
            };
            if (Kta == true)
            {
                Console.Write("Nhap b: ");
                B = Console.ReadLine();
                Ktb = int.TryParse(B, out b);

                if (Ktb == false)
                {
                    for (int i = 1; i < 5 && Ktb == false; i++)
                    {
                        Console.Write("Ban con {0} lan nhap. Nhap b lai lan nua ", 5 - i);
                        B = Console.ReadLine();
                        Ktb = int.TryParse(B, out b);
                    }
                };
                if (Ktb == true)
                {
                    Console.WriteLine("\nNhap a va b thanh cong\n ");
                    Tong = a + b;
                    Hieu = a - b;
                    Tich = a * b;
                    Thuong = (float)a / b;
                    Console.WriteLine("Tong a+b: " + Tong);
                    Console.WriteLine("Hieu a-b: " + Hieu);
                    Console.WriteLine("Tich a*b: " + Tich);
                    Console.WriteLine("Thuong a/b: " + Thuong);
                    Console.ReadLine();
                }
                Console.WriteLine("Thong so b khong hop le");
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Thong so a khong hop le");
                Console.ReadLine();
            }
        }
    }
}
 

0 bình chọn
Reply
Ép kiểu trong C#
RUN 2018-09-11 22:24:09

            int a1, b1;
            bool kq;
            Console.Write("a=");
            string a = Console.ReadLine();
            Console.Write("b=");
            string b = Console.ReadLine();
            kq = int.TryParse(a, out a1);
            kq = int.TryParse(b, out b1);
            Console.Write(kq==true?"a+b="+(a1+b1)+"\n"+"a-b="+(a1-b1)+"\n"+"a/b="+(a1/b1):"False");

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
Hoàng An 2018-11-22 19:25:25
int a1, b1; bool kq1, kq2; Console.Write(&quot;a= &quot;); string a = Console.ReadLine(); Console.Write(&quot;b= &quot;); string b = Console.ReadLine(); kq1 = int.TryParse(a, out a1); kq2 = int.TryParse(b, out b1); Console.Write(kq1&amp;&amp;kq2 == true ? &quot;a &#43; b = &quot; &#43; (a1 &#43; b1) &#43; &quot;\n&quot; &#43; &quot;a - b = &quot; &#43; (a1 - b1) &#43; &quot;\n&quot; &#43; &quot;a/b = &quot; &#43; (a1 / b1) : &quot;False&quot;); Console.ReadKey();
0 bình chọn
Reply
Ép kiểu trong C#
oai.nguyen.utc 2018-09-08 23:36:05

Không dùng if thì nghĩ nát óc vẫn không xử lí được nên mình đành dùng if bạn nào có code ko dùng if chia sẻ để mình học hỏi với . Ý tưởng là nếu nhập sai đưa ra thông báo và bắt nhập lại mới thỏa mãn!

Đây là code dùng if else của mình hihi

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharp
{
    class Program
    {
        static void Main(string[] args)
        {

            int A, B;
            int Tong, Hieu, Tich;
            double Thuong;
            string strA, strB;
            bool iCheck1, iCheck2;
            Console.WriteLine("     *******************************************");
            Console.WriteLine("     *                                         *");
            Console.WriteLine("     * Chuong Trinh Tinh Tong,Hieu,Tich,Thuong *");
            Console.WriteLine("     *                                         *");
            Console.WriteLine("     *******************************************");
            Console.Write("Nhap A = ");
            strA = Console.ReadLine();
            Console.Write("Nhap B = ");
            strB = Console.ReadLine();
            iCheck1 = int.TryParse(strA, out A);
            iCheck2 = int.TryParse(strB, out B);
            if(iCheck1 == false)
            {
                Console.WriteLine("A Chi Duoc La So!");
                Console.Write("Nhap A = ");
                strA=Console.ReadLine();
                A = int.Parse(strA);
                if (iCheck2 == false)
                {
                    Console.WriteLine("B Chi Duoc La So!");
                    Console.Write("Nhap B = ");
                    strB = Console.ReadLine();
                    B = int.Parse(strB);
                }
                
            }
            else
            {
                if (iCheck2 == false)
                {
                    Console.WriteLine("B Chi Duoc La So!");
                    Console.Write("Nhap B = ");
                    strB = Console.ReadLine();
                    B = int.Parse(strB);
                }
 
            }
            Tong = A + B;
            Hieu = A - B;
            Tich = A * B;
            Thuong = (double)A / B;
            Console.WriteLine("Tong = {0}, Hieu = {1}, Tich = {2} , Thuong = {3}", Tong, Hieu, Tich, Thuong);
            Console.ReadKey();

        }
    }
}

 

 

0 bình chọn
Reply
Ép kiểu trong C#
Nam Đz 2018-07-28 16:08:45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BaiTap2
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1, str2; 
            double a, b, Tong, Hieu, Tich, Thuong;
            bool isSuccess, isSuccess2;


            Console.Write("Input Number 1: ");
            str1 = Console.ReadLine();
            isSuccess = double.TryParse(str1, out a);

            Console.Write("Input Number 2: ");
            str2 = Console.ReadLine();
            isSuccess2 = double.TryParse(str2, out b);

            if (isSuccess == true && isSuccess2 == true)
            {
                Tong = a + b;
                Hieu = a - b;
                Tich = a * b;
                Thuong = a / b;

                Console.WriteLine("Tong = " + Tong);
                Console.WriteLine("Hieu = " + Hieu);
                Console.WriteLine("Tich = " + Tich);
                Console.WriteLine("Thuong = " + Thuong);
            }
            else if( isSuccess == true && isSuccess2 == false )
            {
                Console.WriteLine("nhap sai Number 2");
            }
            else if ( isSuccess == false && isSuccess2 == true)
            {
                Console.WriteLine("nhap sai Number 1");
            }
            else
            {
                Console.WriteLine("nhap sai ca 2 Number");
            }

            Console.ReadKey();
        }
    }
}

 

0 bình chọn
Reply
Ép kiểu trong C#
Hải Bliss 2018-07-19 03:06:45

Sử dụng TryParse() cho bác nào tham khảo =)))
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TongHieuTichThuong
{
    class Program
    {
        static void Main(string[] args)
        {
            int a;
            int b;
            int tong, hieu, tich;
            float thuong;
            string stra, strb;
            Console.Write("Moi ban nhap so a: ");
            stra =  Console.ReadLine();
            Console.Write("Moi ban nhap so b: ");
            strb = Console.ReadLine();
            Console.WriteLine(" a= {0}, b = {1}", stra, strb);

        //ép sang kiểu int
            bool ktra;


            ktra = int.TryParse(stra, out a);
            Console.WriteLine(ktra == true ? "Thanh cong!" : "Gia tri a = {0} khong phu hop!", stra);
           // Console.WriteLine( " a = " +a);

            ktra = int.TryParse(strb, out b);
            Console.WriteLine ( ktra == true ? "Thanh cong!" : "Gia tri b ={0} khong phu hop! ", strb );

            
            tong = a + b;
            hieu = a - b;
            tich = a * b;
            thuong = (float)a/b;
            

            Console.WriteLine(" Tong a+b = "+tong);
            Console.WriteLine(" Hieu a-b = " +hieu);
            Console.WriteLine(" Tich a*b = " + tich);
            Console.WriteLine(" Thuong a/b = " + thuong);
            Console.ReadKey();


        }
    }
}

 

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
oai.nguyen.utc 2018-09-08 22:38:52
Code như bạn thì phần kiểm tra nhập đúng hay sai là không có tác dụng vì dù nhập đúng hay sai giá trị của a và b thì nó vẫn thực hiện các biểu thức tong hieu tich thuong .Giờ phải code sao cho nhập sai bắt nhập lại mới chặt chẽ. Mình đang tắc chỗ này :(
0 bình chọn
Reply
Ép kiểu trong C#
pvanquyen1610 2018-07-10 18:29:13

Đây là bài tập của em, nhưng em có điều cảm thấy chưa hoàn thiện lắm!

Em nhập số A = 20 và B = 10, nhưng màn hình console hiện luôn

Thanh Cong ! A = 20

Thanh Cong ! B = 10

Tong

Hieu

Tich

Thuong

// Làm thế nào ghi đúng thì chỉ hiện, Tong, Hieu, Tich, Thuong thôi. Chỉ khi nào nhập A = sedws và B = wec thì mới hiện thêm phần thất bại ạ

http://codepad.org/iTiRYGeV

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
Nam Đz 2018-07-28 16:16:02
xem lại đoạn này Thanhcong = int.TryParse(strA, out A); Console.Write(Thanhcong == true ? &quot; Thanh Cong !&quot; : &quot; That Bai !&quot;); Console.WriteLine(&quot; A = &quot; &#43; A); Thanhcong = int.TryParse(strB, out B); Console.Write(Thanhcong == true ? &quot; Thanh Cong !&quot; : &quot; That Bai !&quot;); Console.WriteLine(&quot; B = &quot; &#43; B); Xóa 2 chữ Thành Công! và xóa Console.WriteLine(&quot; A = &quot; &#43; A); Console.WriteLine(&quot; B = &quot; &#43; B);
0 bình chọn
Reply
Ép kiểu trong C#
manlookeey 2018-01-10 20:31:22

double HowKteam = double.Parse("10.9"); // Chuyển chuỗi giá trị hằng "10.9" sang kiểu int và lưu giá trị vào biến HowKteam - Kết quả HowKteam = 10.9

có thể giải thích đoạn này cho e được ko?

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
neverdung1999 2018-02-22 00:39:30
nhầm đó bạn ơi, nếu đúng là: double HowKteam = double.Parse(&quot;10.9&quot;); // Chuyển chuỗi giá trị hằng &quot;10.9&quot; sang kiểu double và lưu giá trị vào biến HowKteam - Kết quả HowKteam = 10.9
0 bình chọn
Reply
Ép kiểu trong C#
hobanguyen102 2017-11-14 23:46:16

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cau_Truc_lenh_co_ban
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B, tong, hieu, tich;
            Double thuong;
            String SoA, SoB;
           
            Console.WriteLine("Nhap so A: ");
            SoA = Console.ReadLine();
            Console.WriteLine("Nhap so B: ");
            SoB = Console.ReadLine();


            if (int.TryParse(SoA, out A) == true && int.TryParse(SoB, out B) == true)
            {
                tong = A + B;
                hieu = A - B;
                tich = A * B;
                thuong = (double)A / B;
                Console.WriteLine("Tong la " + tong);
                Console.WriteLine("hieu la " + hieu);
                Console.WriteLine("tich la " + tich);
                Console.WriteLine("thuong la " + thuong);
            }
            else
                Console.WriteLine("so nguyen ban oi ");
                    Console.ReadKey();

        }
    }
}
 

0 bình chọn
Reply
View all 2 comments
Kteam - Howkteam Free Education
nguyenkhoa 2018-04-12 20:47:00
mấy bài tậj ??p này ở đâu ra vậy ạ??
0 bình chọn
Reply
Kteam - Howkteam Free Education
nguyenkhoa 2018-04-12 20:47:21
mấy bài tập này ở đâu ra vậy ạ ??
0 bình chọn
Reply
Ép kiểu trong C#
MasterMind 2017-07-07 00:01:56

           int A, B; // Bien chua gia tri so nhap vao (kieu so)
           int Tong, Hieu, Tich; // Biến chứa kết quả Tổng, Hiệu, Tích
            double Thuong; // Vì phép chia có thể cho ra số thập phân nên dùng biến kiểu double để chứa nó
            string strA, strB; // Biến chứa giá trị 2 số nhập vào từ bàn phím (kiểu chuỗi)
            bool KiemTra;// Kiem tra xem viec ep kieu co thanh cong hay khong

            Console.Write("Nhap vao so A: ");
            strA = Console.ReadLine();
            Console.Write("Nhap vao so  B: ");
            strB = Console.ReadLine();
            Console.WriteLine("Kết Quả");

            KiemTra = int.TryParse(strA, out A);
            Console.WriteLine(KiemTra == true ? "" : "A bắt buộc là số, bạn nhập sai, A nhan gia tri = 0");
            KiemTra = int.TryParse(strB, out B);
            Console.WriteLine(KiemTra == true ? "" : "B bắt buộc là số, bạn nhập sai, B nhan gia tri = 0");
            Console.WriteLine("Tong Hai So {0} Va {1}: {2}", A, B, Tong = A + B);
            Console.WriteLine("Hieu Hai So {0} Va {1}: {2}", A, B, Hieu = A - B);
            Console.WriteLine("Tich Hai So {0} Va {1}: {2}", A, B, Tich = A * B);
            Console.WriteLine("Thuong Hai So {0} Va {1}: {2}", A, B, Thuong = (double)A / B);
            Console.ReadKey();//Dừng màn hình để xem kết quả

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
nguyenkhoa 2018-04-12 20:47:28
mấy bài tập này ở đâu ra vậy ạ ??
0 bình chọn
Reply
Ép kiểu trong C#
Nguyễn Thành Chung 2017-06-23 15:33:24

parse: /pärs . :D hehe, đọc nghe đau khổ quá 

0 bình chọn
Reply
Ép kiểu trong C#
Nguyễn Thành Chung 2017-06-23 15:33:21

parse: /pärs . :D hehe, đọc nghe đau khổ quá 

0 bình chọn
Reply
Ép kiểu trong C#
love876748 2017-03-20 02:15:31
http://codepad.org/lgUGGkT3
0 bình chọn
Reply
Ép kiểu trong C#
love876748 2017-03-20 02:14:52
http://codepad.org/lgUGGkT3 Ad kiem tra em lam nhu the dung chua ah :h
0 bình chọn
Reply
Hủy bỏ   hoặc  
Hủy bỏ   hoặc  

Chiến dịch

Kteam - Howkteam Free Education