ホームページ  >  記事  >  バックエンド開発  >  E+14 非常に大きな整数の MySQL ストレージの問題

E+14 非常に大きな整数の MySQL ストレージの問題

WBOY
WBOYオリジナル
2016-06-23 14:21:35953ブラウズ

最近、淘宝網 API を開発していたときに、淘宝網の注文番号に遭遇しました。これは、淘宝網データベースから取得され、科学表記法で表されています: 3.09086009604219E+14。 11 桁、すべて varchar にされますが、後で Taobao API を使用するときは、明示的に整数の順序番号を使用する必要があります。どうすれば MySQL にこのような大きな整数を格納できますか? ? ? ? ? ?
ひざまずいて懇願してください。 。 。 。 。 。 。


ディスカッションへの返信 (解決策)

bigint

MySQL データ型 bigint は、データベースに渡す前にデータを処理する必要がありますか? 。それとも 3.09086009604219E+14 を直接渡しますか? ? ? E+14という文字列は正常に認識できるでしょうか? ? ? ? bigint

は絶対に不可能です。科学的表記法は精度が失われています
ので、文字列としてのみ保存できます

読み方はわかりませんが、少なくともライブラリに科学的表記法で保存することは不可能です

これは、データベースのフィールド タイプを設計して挿入するだけです。

皆さん、ありがとうございます。淘宝網の注文番号は整数ではなく文字列であることがわかりました。 。文書内の注文番号の種類に書かれている数字を見て、整数だと思い、長い間エラーをテストした後、文書に書かれている数字を数値列を参照していると見ました。 。なんという詐欺だ。 。
皆さん、ポイントを貯めてください。 。

$tid = sprintf("%.0f",$trade->tid);

先ほど実行しました。これで問題ありません。みんなもコピーしてね

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。