请问sqlite中精度的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问sqlite中精度的问题相关的知识,希望对你有一定的参考价值。
1:我表中有一个字段是浮点数,如120.241582, Java 用mybatis 连接sqlite,把结果写到excel中,写出的结果是120.2415819999999,这样的,但是有的是好的,如120.241232这种保留6位小数的,请问高手为什么?
2:sqlite中做除法运算,select sum(id) /100 from test ,sum值是10,出来的结果是0,oracle中是0.1,我想让整数除法中,保留小数,该怎么办?
2.select sum(id)/100.0 from test追问
1:数据库中120.241582,写出的结果是120.2415819999999,oracle中就没有这个问题,sqlite有办法让他保留六位小数吗?
2:有没有别的办法,我除100,结果也会出来浮点型
1. 这是sqlite实现的问题,只能存成这样的浮点,但是可以用round(数值,数位)来取四舍五入,应该可以搞定。
2. 除非你把id这个字段的类型改成real, 否则两个整型相除结果还是整数。
2.试试看/100.0,可能是系统按照整数类型进行运算了。追问
1:数据库中120.241582,写出的结果是120.2415819999999,oracle中就没有这个问题,sqlite有办法让他保留六位小数吗?
2:有没有别的办法,我除100,结果也会出来浮点型
保留6位使用round函数
当然要浮点,否则结果就是0了
android如何用SQLite 的query方法查询某行某列的值,也就是两个限制条件,请问参数怎么写?
SQLiteDatabase 给我提供的方法很不实用,还是建议楼主自己写sql语句,参数想怎么传都可以例如:Cursor c = db.rawQuery("select * from user where username=? and password = ?",
new Stirng[]"用户名","密码");
如果你非要调用SQLiteDatabase的query方法,那可以这样
db.query("表名", new String[]"字段1,字段2", "条件1=? and 条件2=?", new String[]"条件1的值,条件2的值",null,null,null) 参考技术A db.query("表名", new String[]"要查询的字段名1,要查询的字段名2", "条件名1=? and 条件名2=?", new String[]"条件1的值,条件2的值",追问
括号里面还要其它参数吗,还少一个后括号,是不是还要添加什么呢
追答query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit)方法各参数的含义:
table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。
columns:要查询出来的列名。相当于select语句select关键字后面的部分。
selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”
selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
groupBy:相当于select语句group by关键字后面的部分
having:相当于select语句having关键字后面的部分
orderBy:相当于select语句order by关键字后面的部分,如:personid desc, age asc;
limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。
这个应该能看懂吧,不需要的条件就写 null
以上是关于请问sqlite中精度的问题的主要内容,如果未能解决你的问题,请参考以下文章
在 SQLite 中存储浮点值会更改 Room DB 中的小数精度
我可以在flift的sqlite表中插入双精度或字符串列表吗?
请问下android studio中的数据库sqlite怎么打开来查询编辑
请问 Delphi 2010中怎么使用(安装)Sqlite数据库?