Float类型数据的不寻常

SQLServer数据类型选择指南:float还是decimal?避免round函数的小数陷阱 本文深入解析了SQL Server中float与decimal两种数值类型的核心差异。float采用二进制近似存储,计算快但存在精度误差;decimal为精确十进制存储,确保数据准确但性能稍逊。文章重点探讨了round函数在处理float类型时可能出现的显示“陷阱”,并提供了金融计算、科学分析等不同场景下的数据类型选择策略与性能优化建议。 阅读详情

  Float f=1234567.899f;
  System.out.println(f);
  System.out.println(f==1234567.899);

结果:

1234567.9
false

 

小数不要用==比较,只能判断一个小数是否在某个公差范围内,就像要描述一直铅笔的粗细一样,只能是φ3.5±0.0001。

编译器把1234567.899这几个符号变成四字节的浮点小数,和把四字节的浮点小数变成类似1234567.899这种串的算法可能是不对称的,具体怎样处理?

浮点数只能比较大小,不能比较相等。

下面的例子更好:

  System.out.println(1.000f);//1.0
  System.out.println(1.00000001f);//1.0
  System.out.println(1.000f==1.00000001f);//true
  System.out.println(1.0000001f);//1.0000001
  System.out.println(1.000f==1.0000001f);//false

对于这种小数不要用float来做,要用BigDecimal或double类处理货币或小数运算。

 

有一个事例:

用SQL SERVER数据库,其中有一个表的字段是float类型。存入数据后,我用程序查询数据,程序读出的数据却和数据库里的数据不一样了。比如数据库里存的是354722.79,可程序读出来显示的是354722.78999999998。

这种情况是因为float类型是浮点数据,是近似数据,用decimal或numeric就可以了。

float类型数据小例子c++ 立即下载

相关推荐

ArcMap 10.7/10.8启动加载界面后闪退?可能是这个隐藏的Normal.mxt模板文件在搞鬼

本文深入分析了ArcMap 10.7/10.8启动加载界面后闪退的问题,指出Normal.mxt模板文件损坏是常见原因。提供了从定位、删除模板文件到系统级修复的完整解决方案,帮助GIS工程师快速恢复工作流程。

weixin_28523493的博客 329

float型数据与字节数组的转化

MCU和PC的浮点数都是基于IEEE754格式的。有4字节(float)、8字节(double)、10字节(有一些不支持)。这里以4字节(float)浮点数为例。一、C语言 转化常见的方法有: 1、强制指针类型转换。 //转换float数据到字节数组 unsigned char i; float floatVariable; unsigned char charArray[4]; (u

oShouQianShou的博客 1万+

Python实战:动态爬取国家地表水水质实时监测数据(附最新代码解析)

本文详细介绍了使用Python动态爬取国家地表水水质实时监测数据的实战方法。针对动态网站数据加载特点,重点解析了如何利用Selenium模拟浏览器操作、结合BeautifulSoup解析数据,并提供了最新的代码实现与常见问题解决方案,帮助开发者高效获取环境监测数据。

app77的博客 272

float型数据与4字节之间的转换

float数据与4字节之间相互转换,方便数据传输。

tutu_hu的博客 2万+

深度学习12—VGG19实现

state_dict = load_state_dict_from_url(model_urls['vgg19'],model_dir='./model' ,progress=progress)#预训练模型地址。accuracy=((out.argmax(1)==label).sum()).clone().detach().cpu().numpy()#正确预测的总和比测试集的长度,即预测正确的精度。image=torch.reshape(image,(1,3,224,224))#四维图形,RGB三个通。

m0_55196097的博客 2441

从零到一:华为iMaster NCE-Campus部署中的Euler OS与FusionInsight深度解析

本文深入解析华为iMaster NCE-Campus部署中Euler OS与FusionInsight的关键技术要点,包括RAID配置、网络绑定技术、安装避坑指南及性能调优方案。通过实战经验和详细配置示例,帮助工程师提升部署效率与系统稳定性,确保华为企业级解决方案的高效运行。

f6g7h8i9j的博客 547

float与byte[]互相转换

今天想利用socket发送数据,可是float类型该怎么发送呢?我的想法是先转换成byte[]型,接收之后再转换回来。float类型是4个字节,而byte是1个字节,所以需要转换成为byte[]的类型,来保证数据的正确转换。话不多说,上代码:public class Main {             //这个函数将float转换成byte[]              public stati...

NetRookieX的博客 2万+

【推荐100个unity插件之2】 DoTween动画插件的安装和使用整合(最全)

摘要:DOTween动画插件使用指南 DOTween是Unity中强大的动画插件,比原生动画更便捷。安装后需进行初始化设置,通过工具菜单生成程序集。主要提供通用方法(DOTween.To)和便捷方法(如transform.DOMove)两种动画实现方式。插件支持丰富的动画设置(循环、缓动等)和事件回调(OnComplete、OnKill)。还提供动画管理功能,包括清除(DOTween.Clear)、完成(DOTween.CompleteAll)和终止(DOTween.KillAll)动画。常用功能涵盖移动、

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

float类型,大小端,运算符,if语句

一、float类型(内部存储方式) float类型变量需在值后加f,用以与double类型区分 ex. float f = 12.5f = 1100.1 = 1.1001x2^3                     指数为3-->加127,130-->1000 0010           (0)31                   (1000 0010) 30-23

qq_39191122的博客 3570

微信小程序 - 解决video视频播放黑屏只有声音没有画面问题,使用Video标签无法播放视频失败只有声音、黑屏视频播放不了,安卓手机/苹果ios视频只有声音却没有画面(uniapp微信小程序也适用)

微信小程序video有声音但是画面黑屏,uni-app微信小程序视频播放黑屏但是有音频,微信小程序video android真机或苹果ios系统中黑屏 只有声音没有画面,Uniapp微信小程序 Video MP4视频播放失败,只有声音,黑屏,视频播放不了,解决办法,解决小程序视频编码兼容性问题导致黑屏,出现黑屏但有声音的问题,video标签播放视频有声音,但是黑屏的原因及解决办法,mp4视频编码的问题,video标签播放视频有声音,但是黑屏。uniapp使用video标签无法播放视频出现黑屏问题处理,如何解

🏆 前端领域优质创作者 7776

把 ABAP Smart Form 输出变成可直接下载的 PDF 二进制:OTF 到 XSTRING 的一条龙实践

SAP Smart Forms 生成 PDF 的实用方案:通过 OTF 格式转换实现高效输出。Smart Forms 本身不直接生成 PDF,而是输出 OTF 格式数据,需通过 CONVERT_OTF 函数转换。本文提供两种实现路径:传统的 Spool 方式和更优的直接获取 OTF 方式,后者避免了 Spool 的维护负担。核心代码演示了如何通过设置 GETOTF 参数获取 OTF 数据,并转换为 PDF 二进制流,适用于前端下载、接口传输等场景。同时介绍了 SSF_OPEN/SSF_CLOSE 方法用于批

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 673

什么时候用float,什么时候用定位?

<br />靠边的框浮动<br />不靠边的框定位

AugustBlog的专栏 1817

K-Core, K-Shell & K-Crust傻傻分不清楚

K-Core(K-核)就是所有大于等于K的K-Shell的并集;K-Crust(K-皮)就是所有小于等于K的K-shell的并集。

欢迎订阅 -- 小源笔迹 2254

Python中float类型、float32类型和float64类型的表示精度,所需内存及其之间的转换

1. ‘float’转’float64’ xxx原本是’float’类型的 x = np.float64(x) 经过上面的xxx就变成了’float64’类型 2.’float64’转‘float’ yyy原本是’float64’类型的 y = np.float(y) 经过上面的yyy就变成了’float’类型 3. 当出现如下错误时需要进行类型的转换 ValueError: Unknown label type: 'unknown' ...

comli_cn的博客 5万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Oracle中float类型

项目中Oracle数据库存储金额用的float类型,金额都是只有2位小数。但是在plsql查看表结构时,类型中没有float类型,都是float(b)类型。有什么区别呢? 作如下实验: create table MY_TEST ( num1 FLOAT(2), num2 FLOAT(10), num3 FLOAT, num4 NUMBER ); insert into my_...

努力做一名优秀的程序员 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ORACLE数据类型之FLOAT

NUMBER(precision, scale)类型     NUMBER类型是一种变长的数据类型,占0~22字节存储空间(1个字节存储数据长度,1个字节存储符号和指数,20个字节存储数据)。          precision是NUMBER可存储的最大有效位数,scale是小数点右边的最大数字长度。     precision范围:1-38,默认38。     scale范围:-84

syryy的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

mysql类型float_Mysql数据类型---FLOAT

标签(空格分隔): MYSQLMYSQL版本:MYSQL5.7基本语法FLOAT(浮点类型)用来存储很大或很小的值。这可能是由小数点前的30位、100位或者更多位组成的数字,或者小数点后拥有很多位的数字。考虑那些小数点后的位数为无限多的数值,例如众所周知的圆周率,1/3。然而对于一个浮点类型可用的存储空间有限,有时候无法存储真正的数值。如果一个数值非常大或非常小,将会存储一个近似值。这就是为什么有...

weixin_27645199的博客 2万+

Java中的数据类型详解——float类型

FloatTest01.java /* 关于java语言中的浮点型数据 浮点型包括: float 4个字节 double 8个字节 float是单精度 double是双精度 double更精确 比如说: 10.0 / 3 如果采用float来存储的话结果可能是:3.33333 10.0 / 3 如果采用double来存储的话结果可能是:3.3333333333 但是需要注意的是,如果用在银行方面或者说使用在财务方面,double 也是远远不够

Amlynooto的博客 9556

float、real、int、integet类型问题;float类型转换问题

最近在一个项目协议中遇到了一个问题,就是数据类型问题,主要有一些之前没见过的类型在计算机占位大小,及在串口获取后从数组buf转换float类型问题,在这里就将C语言常见的数据类型都记录下;要想弄清楚buf转换位float数正确,就得先了解清除float在计算机中的存储格式逻辑。本篇文章主要介绍常见c语言在计算机占位大小,数组转换float类型问题;类型16编译器32编译器64编译器char111long448shor222float444double8。

weixin_51191924的博客 7275

modbus通讯中二进制转换为float类型数据

将2进制存储数据转换为float类型

qq_60651114的博客 6236

C语言中float类型输出会四舍五入吗?你绝对不知道的float

在初学C语言中很多人都知道int类型是不会四舍五入的,它只会取整数部分。学过C语言的朋友肯定都知道输出的值为14,而不会因为你后面的.99四舍五入打印出15。但是,你有没有想过对于flaot类型的数在输出是会不会出现四舍五入呢?于是,我带着这个疑问便在我的编译器上进行了实验,结果如下:此时,看到结果的我很很是疑惑,因为如果计算机四舍五入的话应该输出0.005,0.005,0.004。如果计算机不会四舍五入的话应该输出0.004,0.004,0.004。而输出这个结果又是什么意思呢?

zeyan67843的博客 5490

mysql:列类型之float、double

环境: window10 vs2022 .net 6 mysql 8.0.25 DBeaver 参考: 《MSDN:浮点数值类型(C# 引用)》 《mysql:11.1.4 Floating-Point Types (Approximate Value) - FLOAT, DOUBLE》 1. float和double类型 在mysql中,float和double都是浮点数类型: float 占4个字节,精度是6位; double 占8个字节,精度是16位; 它们的性质和c#中浮点数的性质是一样

火焰 1万+

串口发送float类型数据

STM32串口发送float类型数据

qq_49765312的博客 3190

基础笔记1 —— float型数据与其他类型数据的转换问题

不多说,直接上代码。 1.查看 float 型数据在内存中的二进制存储形式1 #include<iostream> #include<stdio.h> #define uchar unsigned char using namespace std; void binary_print(uchar c) { for (int i = 0; i < 8; ++i)...

罗伯特祥的博客 4500

python转float类型_在Python中将float64类型的DataFrame转换为float

我创建了一个多索引数据帧,其中我使用了groupby和mean。在关于检查任何特定值的数据类型(使用ChkVlu = df.loc['Index1'].loc['index2'].loc['requiredcolumn'])我得到的数据类型是numpy.float64。我需要数据类型为原生python float。在如果我使用ChkVlu = float(ChkVlu),那么一次只有一个值从flo...

weixin_39682944的博客 4023

int类型转换为float类型数据

最近在做MFC上位机程序时,将EDIT控件关联为float类型变量时,EDIT控件一旦为空,程序就会报错任何退出。了解到EDIT控件关联为CString类型时,为空时仍能正常运行,这样做的话需要将CString类型的数据转换为float类型的数据才能使用。        int类型转换为CString类型的 转换函数: CString转换为float类型的转换函数:

liuzhemin12的专栏 2220
上一篇: JavaGUI
下一篇: Date和Calendaer的用法
wangpanbaoding
博客等级 码龄18年 42粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值