【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位(四舍五入)

相关推荐
huazhixuthink4 分钟前
PostgreSQL三种关闭方式的区别
数据库·postgresql
阿里小阿希5 小时前
Vue3 + Element Plus 项目中日期时间处理的最佳实践与数据库设计规范
数据库·设计规范
白鹭6 小时前
MySQL源码部署(rhel7)
数据库·mysql
666和7776 小时前
Struts2 工作总结
java·数据库
还听珊瑚海吗6 小时前
SpringMVC(一)
数据库
星期天要睡觉7 小时前
MySQL 综合练习
数据库·mysql
Y4090017 小时前
数据库基础知识——聚合函数、分组查询
android·数据库
JosieBook8 小时前
【数据库】MySQL 数据库创建存储过程及使用场景详解
数据库·mysql