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