2012-05-21 44 views
7

E+3 là gì? Chính xác những gì xảy ra ở đây? Chúng ta có thể sử dụng cách tiếp cận này trong các kiểu dữ liệu khác hoặc chúng ta chỉ có thể sử dụng nó trong các điểm nổi?Điểm E trong điểm nổi là gì?

static void Main(string[] args) 
{ 
    double w = 1.7E+3; 
    Console.WriteLine(w); 
} 

Output: 1700

+0

những câu trả lời bạn sẽ nhận được cho các ngôn ngữ khác nhau sẽ tương tự, nhưng không giống hệt nhau. Vui lòng chọn ** one ** ngôn ngữ lập trình và giới hạn câu hỏi của bạn với ngôn ngữ đó. –

+3

E + 3 == 10^3 == 10 * 10 * 10 == 1000. Vì vậy, 1,7 * 1000 = 1700. Nó được gọi là "ký hiệu kỹ thuật" afaik – Alex

+0

Tôi tự hỏi tại sao ai sẽ thích 1.7E + 3 so với chỉ 1700 . – BlueM

Trả lời

11

E notation

Hầu hết các máy tính và nhiều chương trình máy tính hiện nay kết quả rất lớn và rất nhỏ trong ký hiệu khoa học. Vì các số mũ thay thế như 10 không phải lúc nào cũng được hiển thị một cách thuận tiện, chữ cái E hoặc e thường được sử dụng để biểu thị số lần mười được tăng lên lũy thừa (được viết là "x 10 b") và tiếp theo là giá trị của số mũ. Lưu ý rằng trong việc sử dụng ký tự e này không liên quan đến hằng số toán học e hoặc hàm mũ e x (sự nhầm lẫn ít có khả năng với vốn E); và mặc dù nó là viết tắt của số mũ, ký pháp thường được gọi là ký hiệu E (khoa học) hoặc ký hiệu e (khoa học), chứ không phải ký hiệu mũ (khoa học) theo hàm mũ (mặc dù ký hiệu thứ hai cũng xảy ra). Việc sử dụng ký hiệu này không được khuyến khích bởi các ấn phẩm.


Đối với câu hỏi thứ hai của bạn:

chúng ta có thể sử dụng phương pháp này trong kiểu dữ liệu khác hoặc chúng tôi chỉ có thể sử dụng nó trong các điểm nổi?

Xem C# spec:

literals Bất [kiểu chữ số được phép một E trong họ] được sử dụng để viết các giá trị của các loại float, doubledecimal.

Tuy nhiên, bạn phải bỏ hoặc hậu tố các literal một cách thích hợp khi giao đến anyhting khác hơn là một Double, bởi vì bất kỳ đen với một e hoặc E trong đó được công nhận là một Double trong Visual Studio. Tôi không thể tìm thấy hành vi này được chỉ định ở đâu.

float f1 = 7E1;  // Compile error. Needs F suffix (7E1F) 
decimal d1 = 8E2; // Compile error. Needs D suffix (8E2D) 
double d2 = 9E3; // Works. 

int overninethousand = (int)9E3 + 1; // Works 
+0

cảm ơn bạn rất nhiều, tôi đã nhận nó ♥ –

+1

cảm ơn một lần nữa, nó rất hữu ích ... –

9

Nói chung, đó là mũ/ký hiệu khoa học ...

1.7E + 3 = 1,7 x 10^3 = 1700

+0

Xin lỗi, ban đầu tôi đã đọc sai số của mình là 1.73E + 3, xấu của tôi, đã sửa nó. –

+0

cảm ơn bạn rất nhiều, tôi đã nhận được nó –

4

E + 3 có nghĩa là nơi thập phân được chuyển 3 lần để quyền

1,7 -> 17,0 -> 170,0 -> 1700,0

+0

cảm ơn bạn rất nhiều, tôi đã nhận nó –

1
E+3 = 10^3, so 1.7 * 10^3 = 1700 
+0

cảm ơn bạn rất nhiều, tôi hiểu rồi –