-
2021-05-15 01:11:35更多相关内容
-
mysql 存储过程判断重复的不插入数据
2020-12-15 22:08:45mysql存储过程中 下面是一个较常见的场景,判断表中某列是否存在某值,如果存在执行某操作 需要注意的是不能用if exists; exists可以在where后面或者在create object是使用,但是在if语句中不可以使用,只能用变通的... -
Mysql 保存float数组的一种方式
2021-02-25 15:43:10最近做人脸识别,想把提取的特征向量,float型的512维数组,保存到Mysql数据库。 借助gson 来实现数据的转换来实现: Gson gson = new Gson(); String str = "[0.046976,-0.035901,-0.023184,0.014815,0.035589...最近做人脸识别,想把提取的特征向量,float型的512维数组,保存到Mysql数据库。
借助gson 来实现数据的转换来实现:
Gson gson = new Gson(); String str = "[0.046976,-0.035901,-0.023184,0.014815,0.035589,-0.024258,-0.117624,-0.020918,0.041997,-0.019475,-0.035084,0.049479,-0.053332,0.030442,0.000873,0.012008,-0.033603,-0.065246,-0.024993,0.038355,-0.025523,0.011324,-0.002531,0.048163,-0.018388,-0.022137,0.040009,-0.021092,-0.051542,0.070355,0.018515,-0.044039,0.009527,0.032691,-0.030746,0.015813,-0.031645,-0.043081,0.025169,0.107150,0.051683,0.059945,0.015421,-0.027492,0.025517,0.040449,0.015656,-0.044695,-0.023850,-0.022898,0.059189,-0.014924,0.036835,0.028041,-0.004306,-0.112039,-0.046451,0.006685,0.079857,0.089685,0.043670,-0.008110,-0.016577,-0.065293,-0.091973,-0.056071,-0.003158,0.038329,0.035841,-0.031943,-0.101215,-0.027860,-0.040416,0.021554,0.050086,-0.030670,0.063946,0.027227,0.010854,0.054937,0.033359,0.068849,0.033294,-0.090207,-0.027027,-0.012915,0.034793,-0.082008,-0.025265,0.029565,0.041500,0.053676,-0.039105,-0.016145,-0.005789,0.005402,-0.016688,-0.008886,-0.056414,0.055919,-0.005601,0.059420,0.033221,0.001279,-0.075994,0.047679,0.008564,-0.061489,0.009049,0.002608,0.093550,0.000331,-0.037180,0.081949,0.011392,0.041722,-0.038507,0.032674,0.044199,0.051280,-0.007051,-0.008843,0.034946,-0.020169,0.083116,0.029594,-0.041697,0.036578,-0.056620,-0.023083,-0.009278,0.013776,-0.059477,-0.023472,0.010080,0.041776,-0.008270,-0.020077,0.024514,-0.026548,0.041732,0.034395,-0.022222,-0.114354,-0.011827,-0.003673,-0.048816,-0.047096,-0.007047,0.025355,-0.059629,0.001665,-0.013865,0.025291,0.008262,0.056953,0.002059,-0.018192,0.089449,0.017731,-0.053725,0.054384,-0.051639,0.005867,0.030546,-0.034134,-0.001304,-0.033258,-0.006027,-0.033623,0.017016,0.040830,-0.020162,-0.010128,-0.085409,-0.015857,0.004563,0.007276,-0.015291,-0.045935,0.014616,0.031119,0.006249,-0.020381,0.060067,0.073464,0.034771,0.006890,0.005017,0.007413,-0.071259,-0.032291,-0.037167,-0.002957,-0.011262,-0.015170,-0.090247,-0.008788,-0.034878,0.054129,-0.134242,0.028485,-0.004580,-0.048655,-0.040566,0.000724,0.097755,-0.011532,-0.057796,-0.021199,-0.001244,-0.058592,0.071597,0.026428,0.052160,0.102309,0.009825,0.044037,-0.006500,-0.036792,-0.042567,0.031647,0.001352,-0.038041,0.039212,-0.007664,0.027829,-0.071266,-0.052662,0.056408,0.011311,0.016055,-0.024104,0.063310,0.081433,-0.030409,-0.016931,-0.049057,0.083779,0.061561,0.032751,-0.001980,-0.042919,0.123842,0.078794,0.023394,0.077935,-0.063068,-0.006925,0.081333,-0.007835,-0.000680,0.064133,0.008956,0.012096,0.023032,0.019447,-0.074128,0.044642,0.056201,-0.030414,0.016893,-0.015918,-0.011136,-0.031821,-0.023101,0.004474,-0.011158,0.023875,-0.013061,-0.009046,-0.031777,0.008892,-0.014093,0.049141,-0.076293,0.035179,-0.020181,-0.063553,-0.058438,-0.011022,-0.118642,0.075553,0.006787,-0.003762,-0.058338,0.001187,-0.050501,-0.003424,-0.007157,0.009644,0.058500,-0.058442,-0.018812,-0.007002,-0.048304,-0.026082,0.039158,0.001202,-0.035852,-0.008896,0.091594,0.010801,0.012007,0.022367,0.007064,-0.062576,0.032535,-0.037729,0.002838,0.009103,-0.031105,-0.032393,0.003926,-0.060115,-0.044278,-0.029738,-0.056600,0.010172,0.094547,-0.009931,-0.026345,0.015897,0.006202,0.013937,0.004103,0.088686,-0.017466,-0.031264,0.060829,0.000377,0.011637,-0.028611,-0.016244,-0.002182,-0.096342,0.006462,0.084697,-0.048682,-0.034335,-0.062791,-0.037432,0.022813,-0.019076,0.082471,0.008379,0.036276,-0.021859,-0.061209,0.042735,-0.047293,0.013335,0.003810,-0.005651,0.002799,0.045750,-0.018697,0.052684,-0.042938,-0.045899,-0.011187,0.000529,-0.004732,-0.012763,-0.036971,-0.006564,0.026557,0.038586,0.004211,0.046067,-0.062571,0.035374,0.076194,0.012479,-0.009211,0.010909,0.019407,-0.040816,0.033278,-0.015997,-0.029139,0.004380,0.130317,-0.005323,0.060276,0.008486,0.034945,0.026428,-0.117780,-0.055746,0.021376,0.011579,0.044952,0.060421,-0.045017,0.012504,-0.025474,-0.007238,0.048930,-0.075786,0.050105,0.015769,0.061967,0.054163,0.025279,0.047959,0.006276,0.051834,-0.041330,0.010510,-0.000701,-0.052760,-0.016573,-0.081074,0.018058,0.029957,0.042522,-0.019366,-0.005891,-0.026318,-0.021674,0.046437,-0.027693,-0.037408,0.024347,-0.010308,-0.115526,0.038141,-0.046006,-0.024414,-0.022456,-0.020808,0.083297,-0.049632,-0.057566,0.060836,0.024246,-0.057238,-0.024468,-0.053545,0.005358,0.020657,-0.024109,0.003247,-0.012480,-0.054809,-0.016033,-0.068541,0.026738,-0.027674,-0.001279,0.059598,0.018346,-0.043920,-0.064533,-0.031084,0.035836,-0.054980,0.037794,-0.026936,0.029582,0.017165,-0.028804,-0.028711,-0.026829,0.019000,0.031892,0.008277,0.037088,0.099696,0.050406,0.063010,-0.037109,0.035078,-0.030225,-0.028696,0.039772,0.026353,0.025733,-0.032334,-0.090609,-0.000840,0.052345,0.010931,0.080128,-0.010244,-0.109285,0.018599,0.071492,-0.039366,0.057105,0.027364,0.001542,-0.084782,-0.035863,0.092739,-0.009981,0.024515,0.018256,-0.082417,0.058568,0.023865,-0.058869,-0.030154,-0.010006,-0.040866,-0.055976,0.014211,0.052039,0.033550,0.040604,0.058277]"; // str 转float数组 Float[] b = gson.fromJson(str, Float[].class); Float[] a = gson.fromJson(str, Float[].class); long beginTimer = System.currentTimeMillis(); for (int j =0;j<10000;j++){ float score = 0.0f; for (int i =0;i<512;i++){ score += a[i]*b[i]; } float bb = (score +1.0f)*0.5f; } //1.float[]数组转换为json String str1 = gson.toJson(a);
mysql 的存储使用text 字段保存。
-
mysql中float类型使用总结
2021-01-18 19:43:23对于单精度浮点数Float: 当数据范围在±131072(65536×2)以内的时候,float数据精度是正确的,但是超出这个范围的数据就不稳定,没有发现有相关的参数设置建议:将float改成double或者decimal,两者的差别是double是...对于单精度浮点数Float: 当数据范围在±131072(65536×2)以内的时候,float数据精度是正确的,但是超出这个范围的数据就不稳定,没有发现有相关的参数设置建议:将float改成double或者decimal,两者的差别是double是浮点计算,decimal是定点计算,会得到更精确的数据。
下面使用分析,
首先创建测试表
CREATE TABLE`customer` (
`id` )NOT NULLAUTO_INCREMENT,
`name` )DEFAULT NULL,
`age` )DEFAULT NULL,
`jinqian`float(5,2) DEFAULT NULL,PRIMARY KEY(`id`)
) ENGINEDEFAULT CHARSET=utf8;
float(m,d)
m表示的是最大长度,d表示的显示的小数位数。
例如上面的sql里:float(4,2) 表示:这个浮点数最大长度为5,也就是五位,然后小数部分为2位,至于存储范围,取决于你是否定义了无符号。
无符号的话,最小是0.0 最大能存储到99999.9,如果有符号的话,范围是:-99999.9至99999.9。
默认大小为24位数字,精度大约7位数字(经测试为6位),当设置M大小大于24时,自动转换为DOUBLE类型;同时设置M和D时不进行自动转换。
小数位超过设定值,按四舍五入保存
,,90.012);
,,90.018);
上面两个分别被保存为
小数位如果都是0,则不保存小数位
,,90.0);
,,90.00);
上面两个分别被保存为
总结
从上面的分析,我们可以得出以下结论:
1、浮点数存在误差问题;
2、对货币等对精度敏感的数据,应该用定点数表示或存储;
3、编程中,如果用到浮点数,要特别注意误差问题,并尽量避免做浮点数比较;
4、要注意浮点数中一些特殊值的处理
-
Sql中存储过程的定义、修改和删除操作
2020-12-16 16:15:071.存储过程的分类 系统存储过程 本地存储过程(用户自定义) 临时存储过程(局部【#】、全局【##】临时存储过程) 2.创建存储过程 --选出价格区间的商品信息 create procedure sp_goods_price @minprice float ,... -
两个float 怎么比较大小
2021-01-21 15:44:59float类型不能比较相等或不等,但可以比较>,=,<=用==从语法上说没错,但是本来应该相等的两个浮点数由于计算机内部表示的原因可能略有微小的误差,这时用==就会认为它们不等。应该使用两个浮点数之间的差异的...float 类型不能比较相等或不等,但可以比较>,=,<=
用==从语法上说没错,但是本来应该相等的两个浮点数由于计算机内部表示的原因可能略有微小的误差,这时用==就会认为它们不等。应该使用两个浮点数之间的差异的绝对值小于某个可以接受的值来判断判断它们是否相等,比如用
if (fabs(price - p)
来代替
if (price == p)
很多工程的应用都是采用计算精确度的方式
定义一个精度,用差的绝对值比较,在精度范围内就认为是相等的;大小可以直接比较。
【规则4-3-3】不可将浮点变量用“==”或“!=”与任何数字比较。
千万要留意,无论是float 还是double 类型的变量,都有精度限制。所以一定要
避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将
if (x == 0.0) // 隐含错误的比较
转化为
if ((x>=-EPSINON) && (x<=EPSINON))
其中EPSINON 是允许的误差(即精度)。
计算机表示浮点数(float或double类型)都有一个精度限制,对于超出了精度限制的浮点数,计算机会把它们的精度之外的小数部分截断。因此,本来不相等的两个浮点数在计算机中可能就变成相等的了。例如:
float a=10.222222225,b=10.222222229
数学上a和b是不相等的,但在32位计算机中它们是相等的。
如果两个同符号浮点数之差的绝对值小于或等于某一个可接受的误差(即精度),就认为它们是相等的。
不要直接用“==”或者“!=”对两个浮点数进行比较,但是可以直接用“”比较谁大谁小。
test.cpp
****************************************
#include
#include
#define EPSILON 1e-6
int main(void)
{
float a = 0.000003;
float b = 0.000005;
printf("a=%f/n",a);
printf("b=%f/n",b);
printf("abs(a-b)=%f/n",abs(a-b));
printf("fabs(a-b)=%f/n",fabs(a-b));
if ( fabs(a-b) <= EPSILON ) //判断浮点数是否相等
{
printf("a==b/n");
}else
{
printf("a!=b/n");
}
if ( fabs(a) <= EPSILON) //判断浮点数是否等于0
{
printf("a==0/n");
}else
{
printf("a!=0/n");
}
if (a > b) //比较两个浮点数的大小,
{
printf("a>b/n");
}else
{
printf("a
}
return 0;
}
-
详细分析sqlserver中的小数类型(float和decimal)
2020-09-08 20:24:26主要介绍了sqlserver中的小数类型的相关知识,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下 -
float 浮点型底层存储原理
2022-04-12 23:26:03float 浮点型底层存储原理 文章目录float 浮点型底层存储原理十进制转二进制科学计数法 “0.1 + 0.2 到底等于几?” >>> 0.1 + 0.2 0.30000000000000004 >>> 39.29 + 0.3 39.589999999999996 &... -
float的存储和运算
2019-11-17 21:24:23float的存储 float的存储遵循IEEE标准,一个float4字节32位,被分成三个部分: s(1位)表示符号位,0表示正数,1表示负数; M(8位)表示指数位即小数点移动的位数,这里引入了一个余码系统后面会分析; E(23位)表示尾数... -
Float型 与 Double型数据的存储方式
2021-02-26 15:53:56先来了解一下浮点数在计算机中是以什么形式存储的首先要知道计算机能懂得只有0和1,每一个0和1都占一个位 bit (比特)(Binary Digits):存放一位二进制数,最小的存储单位。而对于存放一个有小数点的数是如何存储的呢... -
float,double的存储模式
2020-10-11 15:22:56本片博客需要读者自己明白十进制、十六进制、二进制之间的转换,文中不会介绍转换过程,需要了解详细过程的情查找相关资料 首先我们简单的介绍一下计算机中数据存储的基础知识,具体内容在大学课程《计算机组成原理... -
存储过程的定义、修改和删除的操作方法
2021-02-07 14:50:301.存储过程的分类系统存储过程本地存储...创建存储过程--选出价格区间的商品信息create procedure sp_goods_price@minprice float ,@maxprice floatas select * from goodswhere price>=@minprice and price <... -
float型数据在计算机中如何存储?
2020-06-14 23:39:38二进制的科学记数法float型数据的存储方式示例 参考链接:https://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html https://baike.baidu.com/item/科学记数法/1612882?fr=aladdin 二进制的科学记数法 ... -
[爱分享]float数据在内存中的存储方式
2019-07-28 13:50:16首先float的表示范围是3.4E-38 ——3.4E+38,可提供7位有效数字。 在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。 float有32bit,double有64bit。 它们的构成包括符号位、指数位和尾数... -
解说float取值范围计算过程
2022-01-11 11:09:371、先给出实型变量取值范围 实型变量可以分为单精度(float)(4字节)、双精度(double)(8字节)、长双精度(long double)(8字节)三种类型。在 VC6.0 doub... -
mysql存储过程简单实例
2021-03-16 19:26:29例一,mysql存储过程:复制代码 代码示例:CREATE PROCEDURE test(IN myid INT(3),IN myname VARCHAR(22),IN myage INT(3))if myid=0THENINSERT INTO a(name,age) VALUES(myname,myage);ELSEUPDATE a SET a.name=my... -
数据库之--存储过程、存储函数
2022-03-16 15:14:48存储过程与函数 -
浅谈sqlserver下float的不确定性
2020-12-16 16:51:34简单的举个例子,就知道统计的时候,有可能出现意外的效果,导致可能需要存储过程或者接收程序的代码左额外的取舍数位的处理,所以在此其实我是推荐使用Numeric来替代float进行一个替代使用,避免一个sum ,然后明明... -
数据库存储过程如何创建
2021-01-30 18:41:12--创建存储过程的例子CREATE PROCEDURE proc_stuASDECLARE @writtenAvg float,@labAvg numeric(6,2)--定义变量SELECT @writtenAvg=AVG(written),@labAvg=AVG(lab) FROM Examprint '笔试平均分:'+convert(varchar(6)... -
float的精度和取值范围
2019-06-16 12:11:00关于float的精度和取值范围这个问题,我查询了很多次,每次都是用完就忘了,等到再使用的时候还需要再次查询,关键是这个问题大家给出的结果并不都是一致的,我得从众多的资料当中选择出正确的观点,这还要额外花... -
基于C++浮点数(float、double)类型数据比较与转换的详解
2020-12-31 18:22:51浮点数在内存中的存储机制和整型数...1、将字符串转换为float、double过程存在精度损失,只是float、double各自损失的精度不相同而已std::string str=”8.2″;float cc=atof(str.c_str()); //cc的值为8.1999998std: -
MySQL数据库存储过程讲解与实例
2018-06-03 00:48:17SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。... -
**mysql数据创建带参的存储过程,并在存储过程中调用另一个存储过程
2021-10-11 17:08:04要求:创建一个带输出参数的存储过程,输出的参数有两个,第一个输出参数的值为分数总分/总人数,第二输出参数的值为分数总分*总人数 1.学生表(学生号,学生姓名,学生地址) 2.科目表(科目编码,科目名称) 3.... -
讲解ORACLE的数据类型float
2021-05-08 14:24:32讲解 ORACLE 的数据类型 float把字段类型设计成 float(2)后,插入数据 93.5,后,为什么变成了 9 为了说明这个问题, 我们先来看一段话: Oracle Online Help 说: FLOAT(b) specifies a floating-point number with... -
(五)MyBatis调用oracle存储过程
2021-07-10 21:26:40创建存储过程(根据性别获取用户信息(游标集合)) create or replace procedure proc_emp( v_sex in char, cur_emp out sys_refcursor --定义返回类型类型是游标 ) is begin IF v_sex is null THEN --如果... -
存储过程(详解)
2020-07-21 18:50:30客户端应用程序可以通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。 存储过程是一组为了完成特定功能的SQL语句集。可以接受参数、输出参数、返回单个或多个结果集以及返回值。 优点 ... -
MySQL数据库实验六:存储过程建立与调用
2021-01-18 23:08:01实验六 存储过程建立与调用一、实验目的理解存储过程的概念、建立和调用方法。二、实验环境三、实验示例1、定义一个函数,按性别计算所有学生的平均年龄。CREATE FUNCTION aver_age(@sex char(2)) RETURNS ... -
float在内存中的数据格式及其转byte数组原理及转换过程
2018-06-06 20:51:33float在内存中的数据格式及其转byte数组原理及转换过程参考文章 转换说明 https://blog.csdn.net/yezhubenyue/article/details/7436624 进制转换 http://www.cnblogs.com/xkfz007/articles/2590472.html float在... -
MySQL中的存储过程、游标和存储函数
2018-12-18 23:49:23MySQL中的存储过程 首先来看两个问题: 1.什么是存储过程? 存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数...