2008-11-07 25 views

Trả lời

28

câu hỏi BPAndrew dường như được thực sự "tại sao float trong C# và Single trong VB.NET", mà không ai thực sự trả lời, vì vậy đây là 2p của tôi ...

Việc sử dụng "float" trong C# có vẻ là một sự trở lại đối với di sản C/C++ của nó. "float" vẫn ánh xạ tới kiểu System.Single trong C#, vì vậy từ khóa chỉ tồn tại để thuận tiện. Bạn cũng có thể khai báo biến là "Single" trong C# giống như bạn làm trong VB.NET.

(Và như đã nêu ở trên, đặt tên cho chúng đơn/đôi thực sự có ý nghĩa hơn vì họ là single chính xác gấp đôi số/floating-point).

+0

2p, đó là khá tốn kém, so với đồng xu CDN. – LeppyR64

+1

'double' là một từ khóa khác trong C# thoát ra để thuận tiện cho việc ánh xạ tới' System.Double'. – JohnB

2

Tôi nghĩ rằng đó là viết tắt của "Single-chính xác" Double là "đúp chính xác"

Trong khi C-style int và float có lẽ ám chỉ đến "số nguyên" và "dấu chấm"

+0

int nghĩa là số nguyên, hoàn toàn khác với số điểm cố định (số thập phân). điểm cố định chính xác là, một số thực với độ chính xác được đặt trước (cố định). http://mathforum.org/dr.math/faq/faq.integers.html –

0

Tên kỹ thuật là 'điểm nổi chính xác duy nhất', 'đơn' vì nó lấy một từ duy nhất trong bộ nhớ (32 bit). Một đôi, trong khi đó, mất 64 bit trên hầu hết các kiến ​​trúc.

+1

Nguyên bản đơn không có nghĩa là một từ, vì chúng là các máy 16 bit. Điểm nổi và độ chính xác của nó đã được khoảng hơn 32 bit máy có. – kenny

16

Như những người khác đã nói, họ lập bản đồ để "duy nhất" và "đôi "các loại điểm động nhị phân chính xác. Cá nhân tôi nghĩ rằng đó là bước đi ngang chỉ với tên System.SingleSystem.Double - tại sao không System.Float32System.Float64 để khớp với các loại số nguyên?

+2

Ngoài ra, [CIL] (http: //en.wikipedia.org/wiki/Common_Intermediate_Language) gọi chúng là 'float32' và' float64', tương ứng chính xác với 'System.Single' và' System.Double' của [BCL] (http://en.wikipedia.org/wiki)/Base_Class_Library). –

1

Tôi muốn thêm giả thuyết của mình cho quy ước đặt tên.

Trong từ C/C++ Java và sau đó C# được sinh ra, int/long và float/double có thể khác nhau dựa trên kiến ​​trúc mà nó cư trú, 32 bit hoặc 64 bit.

Trong các ngôn ngữ VM di động như Java và C#, các loại này KHÔNG thay đổi và do đó, quy ước đặt tên có thể phản ánh điều đó. Hoặc nó chỉ có thể là thứ thoải mái nhất cho thế hệ lập trình cuối cùng. Hoặc chúng ta có thể tạo bí danh cho mọi thứ và để mọi người làm bất cứ điều gì họ muốn !!