Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Decimal(g) / Decimal(h) và Decimal (g/h) khác gì nhau?

23:02 17-08-2021 811 lượt xem 3 bình luận 00:37 18-08-2021

Mọi người chỉ giùm mình sự khác nhau giữa: 'Decimal(g) / Decimal(h) và Decimal (g/h) ?

# g, h là 2 số thực bất kỳ

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 00:49 21-08-2021

Sau khi tìm hiểu một chút thì em có thể giải thích theo cách hiểu của em, nếu sai thì mong mọi người chỉnh sửa 😃

Mặc định thì máy sẽ lưu số thực theo kiểu binary floating-point (dấu chấm động nhị phân), do đó sẽ có nhiều số thực thì máy sẽ hiểu không chính xác, mọi người có thể thử 1.1 + 2.2, kết quả không phải là 3.3 mà là 3.000000....3.

Còn đối với Decimal, nó sẽ lưu số thực theo kiểu decimal floating-point (dấu chậm động thập phân), cách lưu này tốt hơn, sẽ biểu diễn được nhiều số thập phân sau dấu phẩy hơn, nhưng cũng sẽ có nhiều số sau khi convert thì cũng không thể biểu diễn chính xác đối với máy.

Đối với câu hỏi ở trên thì có thể hiểu là:

Decimal(g)/Decimal(h): chuyển các số theo kiểu decimal floating-point rồi sau đó mới thực hiện phép chia.

Decimal(g/h): chia theo kiểu binary floating-point trước, rồi sau đó mới ép kết quả theo kiểu decimal floating-point.

p/s: Có một cách biểu diễn số chính xác là chúng ta nên đưa chuỗi vào Decimal hay vì số.

kreverse đã bình luận 00:06 18-08-2021

Nếu mình không nhầm thì:
1. Decimal(g) / Decimal(h): sẽ ép kiểu deci số thực trước rồi chia
2. Decimal (g/h): chia 2 số xong mới ép kiểu deci

Câu hỏi mới nhất