Compilazione del codice MOF con valori di Floating-Point

Il compilatore MOF accetta un valore a virgola mobile specificato per una proprietà nonfloating-point. Il valore viene arrotondato verso l'alto o verso il basso e archiviato come numero non diflozione.The value is arrotondato up or down and stored as afloating-point number. Questa situazione può causare alcuni risultati imprevisti.

Nell'esempio di codice MOF seguente viene definita una classe denominata abc in uno spazio dei nomi denominato "Test". Questo codice MOF viene compilato senza errori, ma non è possibile eseguire query sul valore a virgola mobile definito per l'esempio di proprietàUint16 nell'istanza creata dal codice.

#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 si esegue la query seguente, viene visualizzato un codice di errore che indica una query non valida.

SELECT * FROM abc WHERE exampleUint16 = 1000.4

Tuttavia, la query seguente trova l'istanza indicata.

SELECT * FROM abc WHERE exampleUint16 = 1000

Compilazione di file MOF

mofcomp

Comandi del preprocessore