【Sqlite】sqlite内部函数sqlite3_value_text特性

目录

[⚛️1 结论](#⚛️1 结论)

[☪️2 说明](#☪️2 说明)

[☪️3 传入数值转成科学计数法](#☪️3 传入数值转成科学计数法)

[♋3.1 只有整数部分](#♋3.1 只有整数部分)

[♏3.2 只有小数部分](#♏3.2 只有小数部分)

[♐3.3 整数+小数](#♐3.3 整数+小数)


⚛️1 结论

整数(sqlite视为int64)位数 >= 20位,sqlite3_value_text 采用科学计数法。否则正常表示。

浮点数(sqlite视为double)的整数部分位数 >= 16位,sqlite3_value_text 使用科学计数法,且包括小数点后的位数共计显示15位数字。否则正常表示(这里涉及浮点数的精度问题,比如1.33存储显示为1.3299999...多个9...99)。

  • **【示例】**整数(7位) +小数(13位)一共20位,则最终输出整数有7位,则小数部分只显示有8位,小数点后第9位按照四舍五入到第8位
  • **【示例】**整数(0位即等于0) +小数(16位)一共16位,则最终输出整数有0位(等于0),则小数部分只显示有15位,小数点后第16位则四舍五入到第15位
  • **【示例】**整数(16位) +小数(2位)一共18位,则最终输出科学计数法,整数有1位,则小数部分只显示有14位,小数点后第15位按照四舍五入到第14位

【说明】

  • 位数:小数点不算一位,位数均从1开始(特殊情况:只有小数即0.1234的整数部分0不算一位,即视为0位)

☪️2 说明

本文测试 sqlite3_value_text 函数的特性,主要集中测试 sqlite3_value_text 函数在何时会转成科学计数法。

创建sqlite自定义函数:

注册如下:


☪️3 传入数值转成科学计数法

♋3.1 只有整数部分

a 正整数

结论: 对于正整数数值位数 >= 20 位,sqlite3_value_text 采用科学计数法。


b 负整数

结论: 对于负整数数值位数 >= 20 位,sqlite3_value_text 采用科学计数法。


**【总结】**对于只有整数的数值,当整数位数 >= 20位,sqlite3_value_text 采用科学计数法。


♏3.2 只有小数部分

a 正小数

结论: 对于正小数数值,最多保留小数点后第 15 位(当超出15位时,则按照第16位进行四舍五入到第15位)。


b 负小数

结论: 对于 小数数值,最多保留小数点后第 15 位(当超出15位时,则按照第16位进行四舍五入到第15位)。


【总结】对于只有小数数值,最多保留小数点后第 15 位(当超出15位时,则按照第16位进行四舍五入到第15位)。


♐3.3 整数+小数

a 正浮点数

整数+小数数值 = 19位


整数+小数数值 = 18位


整数+小数数值 = 17位


结论:

  • 正整数+小数 ,只显示15位数字
    示例:整数(7位) +小数(13位)一共20位,则最终输出整数有7位,则小数部分只显示有8位,小数点后第9位(如果有)则四舍五入到第8位
  • 整数部分 >=16位则使用科学计数法
  • 小数部分最多保留到第15位(四舍五入)

b 负浮点数

整数+小数数值 = 19位


整数+小数数值 = 18位


整数+小数数值 = 17位


结论:

  • 负整数+小数 ,只显示15位数字
    示例:整数(7位) +小数(13位)一共20位,则最终输出整数有7位,则小数部分只显示有8位,小数点后第9位(如果有)则四舍五入到第8位
  • 整数部分 >= 16位则使用科学计数法
  • 小数部分最多保留到第15位(四舍五入)

【总结】

  • 整数+小数 ,只显示15位数字
    示例:整数(7位) +小数(13位)一共20位,则最终输出整数有7位,则小数部分只显示有8位,小数点后第9位(如果有)则四舍五入到第8位
  • 整数部分 >=16位则使用科学计数法
  • 小数部分最多保留到第15位(四舍五入)

相关推荐
崖山数据库系统YashanDB13 分钟前
YashanDB json语法
数据库
陈三一16 分钟前
关于多数据源下Spring声明式事务管理失效问题的分析与解决
数据库·spring
我有医保我先冲1 小时前
SQL复杂查询与性能优化全攻略
数据库·sql·性能优化
烧瓶里的西瓜皮1 小时前
Go语言从零构建SQL数据库引擎(2)
数据库·sql·golang
SelectDB1 小时前
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
大数据·数据库·数据分析
爱的叹息1 小时前
华为高斯(GaussDB) 集中式数据库 的开发技术手册,涵盖核心功能、开发流程、优化技巧及常见问题解决方案
数据库·gaussdb
背太阳的牧羊人1 小时前
使用 PyMuPDF(fitz)库打开 PDF 文件,并且是从内存中的字节流(BytesIO)读取 PDF 内容
数据库·pdf·文件处理·pymupdf·fitz
@淡 定3 小时前
MySQL MVCC 机制解析
数据库·mysql
Chandler243 小时前
Redis:内存淘汰原则,缓存击穿,缓存穿透,缓存雪崩
数据库·redis·缓存
SRC_BLUE_173 小时前
Python GUI 编程 | QObject 控件基类详解 — 定时器
开发语言·数据库·python