Partilhar via


Compilando código MOF com valores Floating-Point

O compilador MOF aceita um valor de ponto flutuante especificado para uma propriedade de ponto não flutuante. O valor é arredondado para cima ou para baixo e armazenado como um número de vírgula não flutuante. Esta situação pode causar alguns resultados inesperados.

O exemplo de código MOF a seguir define uma classe chamada abc em um namespace chamado "Test". Esse código MOF é compilado sem erros, mas você não pode consultar o valor de ponto flutuante definido para a propriedade exemploUint16 na instância criada por esse código.

#pragma namespace ("\\\\.\\Root")

instance of __Namespace
{
    Name = "Test";
};

#pragma namespace ("\\\\.\\Root\\test")

Class abc
{
        [KEY] String testID ;
        Uint16 exampleUint16;
        Real64 exampleReal64;
};

Instance of abc
{ 
        TestID ="exampleID";
        exampleUint16 = 1000.4;
};

Se você emitir a consulta a seguir, receberá um código de erro que indica uma consulta inválida.

SELECT * FROM abc WHERE exampleUint16 = 1000.4

No entanto, a consulta a seguir localiza a instância indicada.

SELECT * FROM abc WHERE exampleUint16 = 1000

Compilando arquivos MOF

mofcomp

Comandos do Pré-Processador