当前位置: 首页 > news >正文

【Sqlite】sqlite内部函数sqlite3_value_text特性

目录

⚛️1 结论

☪️2 说明

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

♋3.1 只有整数部分

♏3.2 只有小数部分

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

http://www.lryc.cn/news/459758.html

相关文章:

  • 树莓派应用--AI项目实战篇来啦-4.OpenCV读取、写入和显示视频
  • 智能电子后视镜,汽车驾驶更安全,会是一种趋势
  • IEC104规约的秘密之九----链路层和应用层
  • 最新Prompt预设词指令教程大全ChatGPT、AI智能体(300+预设词应用)
  • DockerCompose 启动 open-match
  • Chainlit集成Dashscope实现语音交互网页对话AI应用
  • Canal 扩展篇(阿里开源用于数据同步备份,监控表和表字段(日志))
  • 顺序表的定义
  • 青少年编程能力等级测评CPA C++一级试卷(1)
  • R语言中的plumber介绍
  • uniapp 设置 tabbar 的 midButton 按钮
  • php 生成随机数
  • MySQL 8.4修改初始化后的默认密码
  • 前端开发笔记--css 黑马程序员1
  • ORACLE 19C创建多个不同字符集PDB
  • 基于协同过滤的景区旅游可视化与景区推荐系统(自动爬虫,地点可换)
  • ElasticSearch搜索引擎
  • leetcode哈希表(二)-两个数组的交集
  • 嵌入式硬件设计中EDA布局与布线实现
  • entity,pojo,vo,dto 详解
  • C语言常见知识点
  • 产品设计——应用架构
  • Linux初阶——动静态库
  • 创建一个c#程序,实现字符串类型转整数类型
  • Spring Boot知识管理系统:敏捷开发实践
  • 算法竞赛(Python)-AI的思维模式(搜索)
  • Android Studio开发Kotlin项目中遇到的问题解决集
  • 【LeetCode】708. 循环有序列表的插入
  • 2.1.ReactOS源码分析ReadFile函数分解
  • Gridview配置数据源--信任服务器证书