Tipo de datos ② básico de C # (la diferencia entre decimal y flotante, doble)

 

                       

 

1. Ejercicio de combate real:

int number1 = 12;                              //一个整数类型的变量并赋值
double number2 = 1.11111111111111111111;       //64位双精度浮点型数据(存小数时电脑默认)
float number3 = (float)1.11111111111111111111; //32位单精度浮点型数据(使用时需先进行转换:0.1f或(flost)0.1)
char number4 = 'a';                            //字符数据,‘a’
string number5 = "123";                        //字符串数据,“abc“

Console.WriteLine(number1);
Console.WriteLine(number2);
Console.WriteLine(number3);
Console.WriteLine(number4);
Console.WriteLine(number5);
Console.ReadKey(); 

Resultado de salida:

           


 

2. Déjame hacerte una pregunta

? ? Doble y flote ambos decimales de la tienda. ¿Por qué deben dividirse en dos? Uno no es suficiente. ¿Cuál es la diferencia entre los dos?

Primero veamos un ejemplo:

double number2 = 1.11111111111111111111;
float number3 = (float) 1.11111111111111111111;

Console.WriteLine(number2);
Console.WriteLine(number3);
Console.ReadKey(); 

Resultado de salida:

            

 

Según el rango de valores de double y float:

doble Punto flotante de doble precisión de 64 bits (+/-) 5,0 x 10 ^ -324 a (+/-) 1,7 x 10 ^ 308
flotador Punto flotante de precisión simple de 32 bits -3,4 x 10 ^ 38 hasta + 3,4 x 10 ^ 38

 

Están representados por imágenes como esta:

                    

double tiene un rango de representación mayor que float


 

Tres ? ? Hacer preguntas

Pregunta 1: Al asignar valores a dos variables, ¿no hay una cadena larga de números? ¿Por qué estos son solo algunos de los resultados de salida?

Pregunta 2: El declarada number3 . Es de coma flotante de precisión simple de datos ¿Por qué es necesario escribir ( float ) cuando se asigna un valor más adelante ? Cual es su funcion? No puedes?


Cuatro, resolver

Pregunta 1 :

A través del código en el momento de la declaración y el resultado de la salida, podemos encontrar:

Al asignar un valor a la variable número2 de tipo doble declarada , hay 20 dígitos después del punto decimal, pero el resultado de salida es solo de 16 dígitos

Al asignar un valor a la variable declarada number3 de tipo float , hay 20 dígitos después del punto decimal, pero el resultado de salida es solo 7 dígitos

De hecho, en C # ,

  • doble doble precisión, en un equipo representado . 8 bytes, una precisión de 16 bits
  • Folat precisión simple, en un equipo que representaba . 4 bytes, los bits son válidos . 7 bits
  • El decimal es de alta precisión, el dígito efectivo es 28

 

Pregunta 2 :

Echemos un vistazo a cómo se ve el código en VS2019

El sistema informará un mensaje de error rojo: "No se puede convertir implícitamente el tipo Double al tipo" flotante "; utilice el sufijo" F "para crear este tipo.

Qué significa eso?

En C # ,

Al declarar una variable de precisión, el sistema establecerá automáticamente este decimal en un valor de tipo doble , por lo que la variable número3 declarada en la figura anterior ahora parece un valor del tipo de datos flotante , pero de hecho es un tipo doble Valor numérico. Si desea convertir este tipo doble en un tipo flotante , debe agregar " F " después del valor flotante o agregar ( flotante ) antes del decimal . Como se muestra abajo

número flotante3 = ( flotante ) 1.11111111111111111111;

 

número flotante3 = 1.11111111111111111111F;

 

para resumir

En C #, double representa un rango mayor que float;

El número de dígitos significativos de decimal es mayor que el de los tipos double y float, pero el rango de representación es menor que ambos;

Decimal es adecuado para bancos, que son monedas más precisas y pueden ser fracciones precisas;

Cuando se declara el valor del tipo de precisión decimal, el sistema pasará automáticamente al tipo doble;

Al declarar un valor de tipo flotante, debe agregar (flotante) antes del decimal o agregar F después del decimal

 

Supongo que te gusta

Origin blog.csdn.net/weixin_43319713/article/details/107110480
Recomendado
Clasificación