看看$_POST["number"];
實際上是通過打印出來給你的。我有一種感覺,你的問題在於輸入。所有這些工作的預期:
$collection->insert(array("test"=>"a","float"=>123.45));
$collection->insert(array("test"=>"b","float"=>floatval("123.45")));
$test = array("test"=>"c","float"=>123.45);
$collection->insert($test);
結果:
db.test.find();
{ "_id" : ObjectId("4f2036a6eabc88dd0e000006"), "test" : "a", "float" : 123.45 }
{ "_id" : ObjectId("4f2036a6eabc88dd0e000007"), "test" : "b", "float" : 123.45 }
{ "_id" : ObjectId("4f2036a6eabc88dd0e000008"), "test" : "c", "float" : 123.45 }
添加一些實例爲整數:
$collection->insert(array("test"=>"inta","int"=>new MongoInt32("12345")));
$collection->insert(array("test"=>"intb","int"=>new MongoInt64("123456789")));
結果(至少在我的系統):
{ "_id" : ObjectId("4f20431feabc88cf3500001b"), "test" : "inta", "int" : 12345 }
{ "_id" : ObjectId("4f20431feabc88cf3500001c"), "test" : "intb", "int" : NumberLong(123456789) }
所以,你有如果你想在MongoDB中將數字存儲爲「真正的整數」,要稍微小心。
更新 我被人在該PHP整數10gen的修正通常存儲在蒙戈整數,即使在shell類型顯示號碼。還有一個mongo PHP驅動程序的設置,允許您指定「native_long」行爲。 http://php.net/manual/en/mongo.configuration.php
+1,建議提交貨幣值存儲爲整數。 –
我想知道有多少產品代碼使用浮點數來計算貨幣值;) –
也許你應該取出「no natively supported decimal format」這個句子,因爲mongo和php都提供了原生的十進制格式:'Number' for Mongo(這是默認爲所有數字文字)和「浮動」的PHP。你必須明確地創建MongoInt64以在PHP中存儲爲NumberLong(整數格式爲mongo)。 http://www.mongodb.org/display/DOCS/Data+Types+and+Conventions –