繁体   English   中英

sqlite TOTAL()命令出现问题,结果限制为(6个字符)

[英]Issue with sqlite TOTAL() command, result has a (6 char) number limit

我在SQLite(Android)上的TOTAL()有问题。 看来,如果结果大于6个字符(包括小数位),它将四舍五入并使用E表示法。

我正在使用游标包装程序提取结果的(文本)值:

字符串余额= getString(getColumnIndex(DebtTable.Cols.balance))

...但是它产生的结果在值和格式上都是错误的。

谢谢您的帮助,顺便说一句,我的SQL知识不是特别好。

提前致谢

您应该使用适当的Cursor get方法。 例如代替

 String balance = getString(getColumnIndex(DebtTable.Cols.balance));

您可以使用:-

String balance = Double.toString(csr.getDouble(DebtTable.Cols.balance));

也许 :-

String balance = NumberFormat.getCurrencyInstance().format(csr.getDouble(DebtTable.Cols.balance));

是SQLite列类型的灵活性/可伸缩性的示例 这显示了不同的get方法如何检索数据( 即VALUE AS ????方法的等式将被get???? ):-

对于Double myREAL = 213456789.4528791134567890109643534276 ; : -

08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes: Column=REAL_COL<<
08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes:  VALUE AS INT >>213456789<<
08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes:  VALUE AS LONG >>213456789<<
08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes:  VALUE AS STRING >>2.13457e+08<<
08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes:  VALUE AS DOUBLE >>2.134567894528791E8<<
08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes:  VALUE AS FLOAT >>2.1345678E8<<
08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes:  VALUE AS SHORT >>6037<<
08-08 09:19:03.658 13575-13575/mjt.soqanda D/ColTypes:      Unable to handle with getBlob.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM