Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Chuyển đổi loại C


Chuyển đổi loại

Đôi khi, bạn phải chuyển đổi giá trị của kiểu dữ liệu này sang kiểu khác. Điều này được gọi là chuyển đổi loại .

Ví dụ: nếu bạn cố chia hai số nguyên, 5 cho 2 , bạn sẽ mong đợi kết quả là 2.5 . Nhưng vì chúng ta đang làm việc với các số nguyên (chứ không phải các giá trị dấu phẩy động), nên ví dụ sau sẽ chỉ xuất ra 2 :

Ví dụ

int x = 5;
int y = 2;
int sum = 5 / 2;

printf("%d", sum); // Outputs 2
Hãy tự mình thử »

Để có được kết quả đúng, bạn cần biết cách chuyển đổi loại hoạt động.

Có hai loại chuyển đổi trong C:

  • Chuyển đổi ngầm định (tự động)
  • Chuyển đổi rõ ràng (thủ công)

Chuyển đổi ngầm định

Việc chuyển đổi ngầm định được trình biên dịch thực hiện tự động khi bạn gán giá trị của loại này cho loại khác.

Ví dụ: nếu bạn gán giá trị int cho kiểu float :

Ví dụ

// Automatic conversion: int to float
float myFloat = 9;

printf("%f", myFloat); // 9.000000
Hãy tự mình thử »

Như bạn có thể thấy, trình biên dịch tự động chuyển đổi giá trị int 9 thành giá trị float là 9.000000 .

Điều này có thể nguy hiểm vì bạn có thể mất quyền kiểm soát các giá trị cụ thể trong một số trường hợp nhất định.

Đặc biệt nếu ngược lại - ví dụ sau sẽ tự động chuyển đổi giá trị float 9.99 thành giá trị int là 9 :

Ví dụ

// Automatic conversion: float to int
int myInt = 9.99;

printf("%d", myInt); // 9
Hãy tự mình thử »

Chuyện gì đã xảy ra với .99 ? Chúng tôi có thể muốn dữ liệu đó trong chương trình của chúng tôi! Vì vậy hãy cẩn thận. Điều quan trọng là bạn phải biết trình biên dịch hoạt động như thế nào trong những tình huống này để tránh những kết quả không mong muốn.

Một ví dụ khác, nếu bạn chia hai số nguyên: 5 cho 2 , bạn biết tổng đó là 2.5 . Và như bạn đã biết từ đầu trang này, nếu bạn lưu tổng dưới dạng số nguyên thì kết quả sẽ chỉ hiển thị số 2 . Vì vậy, sẽ tốt hơn nếu lưu tổng dưới dạng float hoặc double , phải không?

Ví dụ

float sum = 5 / 2;

printf("%f", sum); // 2.000000
Hãy tự mình thử »

Tại sao kết quả là 2.00000 mà không phải 2.5 ? Vâng, đó là vì 5 và 2 vẫn là số nguyên trong phép chia. Trong trường hợp này, bạn cần chuyển đổi thủ công các giá trị số nguyên thành giá trị dấu phẩy động. (xem bên dưới).


Chuyển đổi rõ ràng

Chuyển đổi rõ ràng được thực hiện thủ công bằng cách đặt loại trong dấu ngoặc đơn () trước giá trị.

Xem xét vấn đề của chúng ta từ ví dụ trên, bây giờ chúng ta có thể nhận được kết quả đúng:

Ví dụ

// Manual conversion: int to float
float sum = (float) 5 / 2;

printf("%f", sum); // 2.500000
Hãy tự mình thử »

Bạn cũng có thể đặt kiểu này trước một biến:

Ví dụ

int num1 = 5;
int num2 = 2;
float sum = (float) num1 / num2;

printf("%f", sum); // 2.500000
Hãy tự mình thử »

Và vì bạn đã học về "độ chính xác thập phân" ở chương trước, nên bạn có thể làm cho kết quả đầu ra rõ ràng hơn bằng cách loại bỏ các số 0 dư thừa (nếu bạn muốn):

Ví dụ

int num1 = 5;
int num2 = 2;
float sum = (float) num1 / num2;

printf("%.1f", sum); // 2.5
Hãy tự mình thử »

Ví dụ thực tế

Dưới đây là ví dụ thực tế về loại dữ liệu và chuyển đổi loại trong đó chúng tôi tạo chương trình để tính tỷ lệ phần trăm điểm của người dùng so với điểm tối đa trong trò chơi:

Ví dụ

// Set the maximum possible score in the game to 500
int maxScore = 500;

// The actual score of the user
int userScore = 423;

/* Calculate the percantage of the user's score in relation to the maximum available score.
Convert userScore to float to make sure that the division is accurate */
float percentage = (float) userScore / maxScore * 100.0;

// Print the percentage
printf("User's percentage is %.2f", percentage);
Hãy tự mình thử »

Bài tập C

Kiểm tra bản thân bằng các bài tập

Bài tập:

Sử dụng chuyển đổi loại để đảm bảo rằng kết quả của ví dụ sau là 1.5 chứ không chỉ 1 .

tổng số tiền thả nổi = 3/2;
printf("%.1f", sum);

Bắt đầu bài tập



×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .