Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 存储为字符串的Android SQL Lite int值在检索时显示额外字符_Java_String_Mongodb_Sqlite_Go - Fatal编程技术网

Java 存储为字符串的Android SQL Lite int值在检索时显示额外字符

Java 存储为字符串的Android SQL Lite int值在检索时显示额外字符,java,string,mongodb,sqlite,go,Java,String,Mongodb,Sqlite,Go,我在MongoDB数据库中将电话号码存储为Double(错误地)。因此,数据库中的数字有点像这样- 180010000001.0 我通过golang后端获取此消息,它给出的响应令人惊讶地是- { "phoneNumber": 180010000001 } 我没有通过任何结构传递此数据,它只是一个简单的mgo查询 MgoSession.DB(Dbname).C(collectionName).Find(query).All(&result) 它返回一个接口数组[]接口{} 现在我在我

我在MongoDB数据库中将电话号码存储为Double(错误地)。因此,数据库中的数字有点像这样-

180010000001.0
我通过golang后端获取此消息,它给出的响应令人惊讶地是-

{
"phoneNumber": 180010000001
}
我没有通过任何结构传递此数据,它只是一个简单的
mgo
查询

MgoSession.DB(Dbname).C(collectionName).Find(query).All(&result)
它返回一个接口数组
[]接口{}

现在我在我的Android应用程序上使用这个web服务,并将这些值存储在SQLLite内部,以便在整个应用程序中使用,如下所示-

phoneNumber TEXT
cursor.getColumnIndex("phoneNumber")
然后我就这样储存,

contentValues.put("phoneNumber", phoneNumber);
像这样取-

phoneNumber TEXT
cursor.getColumnIndex("phoneNumber")
并将其分配给我声明为
String

现在当我打印出来时,它显示-

1.80010000001E11
这种转变是在哪里发生的

此JSON文本:

{
"phoneNumber": 180010000001
}
定义一个JSON对象,其属性
为“phoneNumber”
,其值为:
180010000001
。注意:该值不是一个JSON字符串,就像它是一个JSON字符串一样,它将用引号括起来,如下所示:

{"phoneNumber": "180010000001"}
回到原始版本:它是一个JSON数字,因此当JSON文本被解析并转换回Java或Go值时,它将是一个浮点数字。当打印浮点数字时,通常(当数字太“大”或太“小”时),使用的是:

180010000001 = 1.80010000001E11
如果您想避免这种情况(您应该这样做),您必须将您的电话号码声明为
long
类型(Java)或
uint64
(Go),或者更倾向于将其声明为
string
类型,这样就不会出现舍入错误的“神秘”格式


如果您已经在MongoDB中将其保存为双精度,则可以加载全部并将其重新保存为
string
(更好),或者如果您不想这样做,则在将其发送到客户端之前将其转换为
string

链中的某些内容配置为将数字字符串视为浮点数。golang会这样做吗?golang的响应令人惊讶地“看起来”像一个整数,但作为JSON,我假设它可以在Java中作为整数和字符串获取。我使用JSONObject.getString()方法获取它。假设数据库中的列是字符串,那么在数据库和代码之间的链中的某个地方,它被转换为浮点,这是不好的。你得弄清楚在哪里,我知道!我需要更多的尝试,找出这种混乱是在哪里发生的。谢谢你为我们指明方向!当您
.put()
时,浮点数通过以下方式显示为字符串化:
String.valueOf(180010000001.0)
-它编码为科学符号;非常感谢你的详细回答!我做了最后一件事——将所有值保存为字符串。