2016-05-31 11 views
1

Heey alle! Ich habe Probleme beim Speichern von Gleitkommawerten in MongoDB.Fließende Punkte PHP - MongoDB

In PHP erstelle ich ein Objekt, das eine Float-Eigenschaft hat. Dies könnte ein solches Objekt sein: cpuArray

die Eigenschaft laden ist eine gültige Float-Typ in PHP. Immer, wenn ich meine Daten bestehen bleiben es so eingefügt Mongo wird:

{ 
    "_id": ObjectId("574d55d1da461e77030041aa"), 
    "hostname": "VPS", 
    "timestamp": NumberLong(1464685936), 
    "cpuCores": NumberLong(2), 
    "cpuList": { 
    "cpu1": { 
     "load": 2.2999999999999998224 
    }, 
    "cpu2": { 
     "load": 3.0 
    } 
    } 
} 

Was das verursacht? Ich verwende die folgende Software + Version:

  • Mongo PHP-Erweiterung Version: 1.6.14
  • Symfony Version: 3.0.6
  • MongoDB Shell-Version: 3.2.4

Ich füge die Daten unter Verwendung der Doktrin Odm ein.

Wie ich in diesem Beitrag sehe: Mongodb PHP - Integers with decimals die Dezimalstellen in der Datenbank eingefügt sind korrekt eingefügt und gezeigt. Für mich ist das nicht.

+4

Obligatorischer Vortrag: [Was jeder Programmierer über Fließkomma-Arithmetik wissen sollte] (http://floating-point-gui.de/) ;-) – Crozin

Antwort

0

Es scheint, dass die App, die ich verwende, um den Inhalt meiner Datenbank anzuzeigen, Probleme mit der korrekten Darstellung hat. Ich habe den Wert durch die Mongoshell nach oben geschaut und es war genau der Wert, den ich eingegeben habe.