>백엔드 개발 >PHP 튜토리얼 >E+14 超大整数的mysql存储问题

E+14 超大整数的mysql存储问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-23 14:21:35989검색

最近做淘宝api的开发,遇到淘宝的订单号;是一个15位的整数,从淘宝数据库取得的是用科学计数法表示的:3.09086009604219E+14,以前遇到11位以上的数字,都是做成varchar;但是后面用到淘宝api又必须明确使用整型订单号,请问一下这样一个超大的整数是怎么存储到mysql的啊,用float吗??????
跪求跪求啊。。。。。。。


回复讨论(解决方案)

bigint

mysql数据类型bigint,传入数据库前是否需要处理数据呢。。还是直接传入3.09086009604219E+14???E+14这个字符串能够被正常识别吗???? bigint

肯定是不行的了,科学计数法已丢失了精度
只能以字符串保存

我不知道你是如何读的,至少库中是不可能保存成科学计数法的

那只是你读取之后输出显示是这个样子,设计好你的数据库字段类型 插入即可。

谢谢各位大神,原来淘宝订单编号是字符串,不是整型数字。。我看文档上订单编号类型写的number,就自以为是整型,测试了半天错误才去看文档上写的number指提数字串。。坑爹啊。。
各位接分。。

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

我刚做,这样OK。大家COPY吧

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.