【Sqlite】sqlite内部函数sqlite3_value_text特性

news/2024/10/10 11:10:53/

目录

⚛️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.ppmy.cn/news/1536977.html

相关文章

Python 全栈开发从入门到实战进阶课程

需要课程的,添加文本末尾的联系方式。 以下是一份关于该课程的文档,其中加入了一些具体的代码示例: 《Python 全栈开发从入门到实战进阶课程》介绍 一、课程概述 本课程涵盖了 Python 编程的多个方面,包括编程基础、数据结构、…

vue3实现excel文件预览和打印功能

文章目录 一、预览excel1、安装2、使用3、代码4、效果二、打印excel1、安装2、使用3、代码4、效果三、小结在前端开发中,有时候一些业务场景中,我们有需求要去实现excel的预览和打印功能,本文将介绍在vue3中如何实现Excel文件的预览和打印。 一、预览excel 关于实现excel文…

线性回归逻辑回归-笔记

一、线性回归(Linear Regression) 1. 定义 线性回归是一种用于回归问题的算法,旨在找到输入特征与输出值之间的线性关系。它试图通过拟合一条直线来最小化预测值与真实值之间的误差。 2. 模型表示 线性回归模型假设目标变量(输…

红灯-绿灯-重构

代码在周期内的状态:处于红灯状态时,代码不管用,处于绿灯状态时,一切都想预期的那样工作,但并不一定是最佳的,到了重构阶段,我们知道测试很好的覆盖了各项功能,可以充满信息地修改他…

Mysql 索引底层数据结构和算法

目录 索引数据结构 Hash表 二叉树 红黑树 B树 B树 索引数据结构 索引(index)是帮助MySQL高效获取数据的一种有序数据结构。索引是存储到表空间中,当我们的 sql 中的where条件用到索引的时候,会在存储引擎层就过滤出数据来…

Redis:cpp.redis++通用接口

Redis:cpp.redis通用接口 redis对象通用接口set & getexistsdelflushallkeysttlexpiretype 本博客讲解redis的C客户端redis-plus-plus,这个版本的客户端,接口和redis原生命令几乎完全一致,博客内部不会详细讲解每个接口的具体…

如何用深度神经网络预测潜在消费者

1. 模型架构 本项目采用的是DeepFM模型,其结构结合了FM(因子分解机)与深度神经网络(DNN),实现了低阶与高阶特征交互的有效建模。模型分为以下几层: 1.1 FM部分(因子分解机层&#…

C#系统学习路线

分享一个C#程序员的成长学习路线规划,希望能够帮助到想从事C#开发的你。 我一直在想,初学者刚开始学习编程时应该学些什么?学习到什么程度才能找到工作?才能在项目中发现和解决Bug? 我不知道每位初学者在学习编程时是…