Menu
CoddyTech

Số thập phân cần có f

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 3 trên 85.

Số nguyên không đủ cho một trò chơi: một quả bóng bay lơ lửng ở vị trí 3.5, một người chơi chạy với tốc độ 4.2 đơn vị mỗi giây. Các số có dấu thập phân có kiểu dữ liệu riêng, float:

float speed = 4.2f;

Hãy chú ý chữ f ở cuối. Trong C#, 4.2 thông thường là một kiểu số thập phân khác, double, còn vị trí và kích thước trong Unity dùng kiểu float. Chữ f cho C# biết số đó có kiểu float. Nếu bỏ chữ này, Unity sẽ không khởi động trò chơi và hiển thị lỗi sau trong Console:

error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type

Lỗi trông đáng sợ, nhưng chỉ có nghĩa là “thêm chữ f”. Số nguyên như 2 không cần f: nó có thể dùng làm số float như hiện tại.

Còn một điều bất ngờ nữa: khi chia hai số int, kết quả chỉ giữ lại phần nguyên, vì vậy 7 / 2 bằng 3. Viết 7 / 2f để có kết quả 3.5.

challenge icon

Thử thách

Dễ

Sửa script của quả bóng bay, rồi làm cho nó bay cao hơn và to hơn.

  1. Nhấn "Chơi": Console hiển thị lỗi CS0664 ở dòng height.
  2. Đổi dòng đó thành float height = 3.5f;.
  3. Đổi dòng kích thước thành float size = 1.5f;. Mọi số có dấu thập phân đều cần có f.

Nhấn "Chơi": quả bóng bay ở độ cao 3.5, với kích thước gấp một lần rưỡi. Sau đó nhấn "Kiểm tra".

Tự làm thử

using UnityEngine;

public class Balloon : MonoBehaviour
{
    void Start()
    {
        float height = 2.5;
        float size = 1;

        transform.position = new Vector3(0, height, 0);
        transform.localScale = new Vector3(size, size, size);
    }
}

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity