`

整数与浮点数的操作注意事项

 
阅读更多

在用整数进行操作的时候,注意

1、检查整数除法

注意整数除法最后的结果是整数,即使中间结果也是。因此在计算的时候需要当心。如10*(7/10) = 0

2、检查整数溢出

在做整数乘法或者加法的时候,要留心能求出的最大整数,看是否大于该数据类型的最大值。

另外要考虑到程序的未来发展,如果整数在当前的环境下,不可能溢出;未来如果会的话也要注意。

3、检查中间结果的溢出

要小心,即使可能最后的结果没有溢出,但是计算的中间值却溢出了。

如:int a = 100000;int b = a*a/a;这个时候中间结果(a*a就溢出了)

 

 

使用浮点数应该遵循的指导原则:

1、避免数量级相差巨大的数之间的加减运算,如1000000.00+0.1=1000000.00。

如果必须这么做,那么就先对这些数进行排序,然后从最小值开始把他们加起来。同样,如果你需要对无穷数列进行求和,那么就从最小的值开始。

2、避免等量判断

因为计算机存储的浮点数并不精确,许多从数学上来看应该相等的浮点数未必相等。如10个0.1相加未必等于1.0。

一种可行的办法是先确定可以接受的误差范围,然后用布尔数值去判断是否接近。如Math.abs(a-b)<acceptedEstimate的话就判断为相等。

在java中,基本数据类型的封装类型都提供了compareTo()方法用来判断是否相等。

3、处理舍入误差问题

解决办法有:换用一种精度更高的类型

   采用BCD码(用4位二进制数来表示1位十进制数中的0~9这10个数码)

   把浮点变量变成整型变量,然后进行计算,这时候就要手动计算了。

4、检查语言和函数库对特定数据类型的支持

分享到:
评论

相关推荐

    C#与西门子PLC通讯测试DOME.rar

    是最近几年才出来的一种与西门子plc通讯的方式,本人经过几个星期的测试,找到他的所有使用方法和注意事项,并开发了一个通用类库可以读取写入各种类型的数据,字符串,bool,16位整数,32位整数,浮点数还有struct...

    蓝桥杯算法辅导.zip

    蓝桥杯算法辅导 ,算法作为蓝桥杯竞赛的一个核心内容,作为参赛者需要掌握以下常用的算法,并灵活加以运用就能解决很...浮点数的注意事项 经典的递归问题 递归与循环 代码使用java编写,包含了AVL树的模型图作为参考,

    C#与西门子PLC测试DOME.rar

    是最近几年才出来的一种与西门子plc通讯的方式,本人经过几个星期的测试,找到他的所有使用方法和注意事项,并开发了一个通用类库可以读取写入各种类型的数据,字符串,bool,16位整数,32位整数,浮点数还有struct...

    Java保留两位小数方法大全

    Java保留两位小数的各种方法(代码),还有浮点数、整数之间的转换几注意事项,比较适用。

    总结PHP中数值计算的注意事项

    1.round — 对浮点数进行四舍五入 float round ( float $val [, int $precision ] ) 2:floor — 舍去法取整(向下取整) float floor ( float $value ) 3.ceil — 进一法取整(向上取整) float ceil ( float $value...

    七彩渐变色螺线PythonTurtle海龟画图示例程序PY文件下载可调参数

    注意事项: 1.这个程序下载后可以随意复制, 但不建议这么做。 2.建议不要把此程序冒充是(下载者)自己做的。 3.此程序需要有Python的开发环境才能运行, 如果你是正常方式安装(PythonIDLE), 双击即可运行。

    js中parseFloat(参数1,参数2)定义和用法及注意事项

    语法:parseFloat(string),参数string是必须的,表示要被解析的字符串 返回值:返回解析后的数字 注意事项: 1.开头和结尾的空格是允许的。 2.如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 ...

    Java中精确的浮点运算操作示例

    主要介绍了Java中精确的浮点运算操作方法,结合具体实例形式分析了java浮点数运算的相关函数、使用技巧与注意事项,需要的朋友可以参考下

    delphi 开发经验技巧宝典源码

    0033 调用Register过程的注意事项 24 0034 在Delphi中禁止使用result 24 0035 如何在Delphi中录制代码 24 0036 如何编译器会提示数组太大时的处理技巧 25 0037 如何对超大数字进行计算 25 0038 强类型的...

    MySQL数据类型详解及部分使用范例

    MySQL数据类型数据类型数值类型整数类型使用实例浮点数和定点数类型使用实例日期类型使用实例字符串类型相关概念CHAR和VARCHARBINARY和VARBINARYTEXT和BLOBENUM:单选SET:多选使用范例小小的注意事项 数据类型 ...

    delphi 开发经验技巧宝典源码06

    0033 调用Register过程的注意事项 24 0034 在Delphi中禁止使用result 24 0035 如何在Delphi中录制代码 24 0036 如何编译器会提示数组太大时的处理技巧 25 0037 如何对超大数字进行计算 25 0038 强类型的...

    Javashop开发规范V2.2

    Javashop开发规范V2.2 ...注意事项:见【BaseDaoSupport的意义和存在的问题】 二、 直接声明baseDaoSupport操作数据库 在一些挂件类中或某些特殊情况,可以直接需要直接声明baseDaoSupport 此种操作示例: ...

    PL/SQL Developer8.04官网程序_keygen_汉化

     number 用来存储整数和浮点数。范围为1e130~10e125,其使用语法为: number[(precision, scale)] 其中(precision, scale)是可选的,precision表示所有数字的个数,scale表示小数点右边数字的个数。  varchar2 ...

    Go程序设计语言

    302.6.1 导入 312.6.2 包初始化 332.7 作用域 34[0第0]3章 基本数据 383.1 整数 383.2 浮点数 423.3 复数 453.4 布尔值 473.5 字符串 473.5.1 字符串字面量 493.5.2 Unicode 493.5.3 UTF-8 503.5.4 ...

    个人网站与博客,基于SpringBoot、React、NextJS(SSR) 的前后端分离网站+源代码+文档说明

    ## 注意事项 后端的主键ID一般为 Long 类型,在 Java 中是 64位整数型,而在 JavaScript 中数字是 64位浮点数,这就造成了精度不一致! 所以,在 JavaScript 中要使用字符串来处理后端的 Long 类型数字,否则会出现...

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    四、注意事项: 1、用习惯VB的人很容易漏了语句末尾的分号; 2、用习惯VB的人很随便使用变量但是不申明,这在C#默认情况下是不允许的; 3、在向函数传递参数的时候要用圆括号:Response.Write "aa";是不允许的。 我...

Global site tag (gtag.js) - Google Analytics