Articles

Non-integer

Synopsis

Utilizar os tipos de dados não-inteiros (ponto flutuante e ponto fixo) para especificar números não-inteiros. Os diferentes tipos de dados de ponto flutuante representam números de precisão diferentes.

DOUBLE

DECIMAL

Data type Description Decimal precision
FLOAT Inexacto 32-bit floating point number 7
Inexact 64-bit floating point number 15
Arbitrary-precision number no upper-bound

Syntax

Where

  • Colunas do tipo FLOATDOUBLEDOUBLE PRECISION, ou DECIMAL pode fazer parte do PRIMARY KEY.
  • DOUBLE e DOUBLE PRECISION são pseudónimos.
  • non_integer_floating_point_literal é utilizado para valores de FLOATDOUBLE e DOUBLE PRECISION tipos.
  • non_integer_fixed_point_literal é utilizado para valores de DECIMAL tipo.

Semântica

  • Valores de diferentes tipos de dados de ponto flutuante e de ponto fixo são comparáveis e convertíveis uns aos outros.
      Conversão dos tipos de pontos flutuantes em DECIMAL irá levantar um erro para os valores especiais NaNInfinity, e -Infinity.
  • Valores de tipos de dados numéricos não inteiros não são comparáveis nem convertíveis em inteiros, embora inteiros sejam convertíveis em inteiros.
  • A ordenação de valores especiais de ponto flutuante é definida como (em ordem ascendente): -Infinity, todos os valores negativos em ordem, todos os valores positivos em ordem, Infinity, e NaN.
  • Exemplos

    ycqlsh:example> CREATE TABLE sensor_data (sensor_id INT PRIMARY KEY, float_val FLOAT, dbl_val DOUBLE, dec_val DECIMAL);
    ycqlsh:example> INSERT INTO sensor_data(sensor_id, float_val, dbl_val, dec_val) VALUES (1, 321.0456789, 321.0456789, 321.0456789);

    Integers literals também podem ser usadas (Usando a semântica de cima para cima para actualizar um nãofila existente).

    ycqlsh:example> UPDATE sensor_data SET float_val = 1, dbl_val = 1, dec_val = 1 WHERE sensor_id = 2;
    ycqlsh:example> SELECT * FROM sensor_data;
     sensor_id | float_val | dbl_val | dec_val-----------+-----------+-----------+------------- 2 | 1 | 1 | 1 1 | 321.04568 | 321.04568 | 321.0456789

    Veja também

      Tipos de dados

    Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *