浮点数

Java关键字总结及详解

我与影子孤独终老i 提交于 2020-01-20 02:00:08
  Java关键字是Java的保留字,这些保留字不能用来作为常量、变量、类名、方法名及其他一切标识符的名称。   一、基本数据类型   Java中有八种基本数据类型,六种数字类型(四个整数型、六中浮点型),一种字符类型,以及一个布尔型。   1.byte     8位、有符号。     最大值是127,最小值是-128.     默认值是0.     byte类型用在大型数组中节约空间,主要代替整数。   2.short     16位、有符号。     最大值是32767,最小值是-32768.     默认值是0.   3.int     32位、有符号。     最大值是2147483647,最小值是-2147483648     默认值是0.   4.long     64位、有符号。     最大值是9223372036854775807,最小值是-9223372036854775808.     默认值是0L。   5.float     单精度、32位、有符号、浮点数。     默认值是0.0f.     float在存储大型浮点数组时可以节省内存空间。     浮点数不能用来表示精确的值。   6.double     双精度、64位、有符号、浮点数。     默认值是0.0d。     double类型不能表示精确的值。     浮点数的默认类型为double类型

浮点数运算

余生颓废 提交于 2020-01-19 11:55:59
浮点数运算的公式 N = M*R e N代表浮点数 M代表尾数 R代表基数 e代表指数 所谓浮点数就是类似我们高中学的科学计数法 比如 1000 就表示为 1.0 * 10 3 那么浮点型计算就是两个用科学计数法表示的数之间进行的计算 例如 1.0 * 10 2 + 1.19 * 10 3 该如何计算 步骤:1. 对阶 所谓对阶就是让指数一致,因为如果指数不同就无法对尾数进行 相应的操作,所以对应的操作就是将1.0 * 10 2 化成0.1 * 10 3 这个时候再对 尾数进行加减,但是有一个问题,为什么不能把1.19 * 10 3 化成11.90 * 10 2 呢 理由就是如果我们这样转化到最后还是要转化回1.多少的形式。意思就是小数点左边不能多余两位。 步骤:2.尾数计算 对尾数进行 步骤:3.结果格式化 假如尾数计算的结果出现0.18 * 10 3 这种情况 就需要将结果变成1.8 * 10 2 类似 来源: CSDN 作者: nb_zsy 链接: https://blog.csdn.net/nb_zsy/article/details/104034923

浅谈优化程序性能(下)

混江龙づ霸主 提交于 2020-01-19 08:02:47
前言 在 上一篇随笔 中,我们谈到最小化一个计算中的操作数量不一定会提高它的性能。现在,就让我们来解开为什么会出现这种情况的原因吧。 处理器体系结构 在计算机的处理器中,处理一条指令包括很多操作,可以分为取指(fetch)、译码(decode)、执行(execute)、访存(memory)、写回(write back)和更新程序计数器(PC update)等几个阶段。这些阶段可以在流水线上同时进行,如下图所示: 上图中,F、D、E、M 和 W 分别代表上述五个阶段。当然,现代的处理器比这个示例要复杂得多,但是原理是一样的。 双精度浮点数乘法: 延迟 5 发射时间 1 双精度浮点数加法: 延迟 3 发射时间 1 单精度浮点数乘法: 延迟 4 发射时间 1 单精度浮点数加法: 延迟 3 发射时间 1 整数乘法:延迟 3 发射时间 1 整数加法:延迟 1 发射时间 0.33 上面是 Intel Core i7 的一些算术运算的性能。这些时间对于其他处理器来说也是具有代表性的。每个运算都是由两个周期计数值来刻画的: 延迟(latency),表示完成运算所需要的总时间。 发射时间(issue time),表示两个连续的同类型运算之间需要的最小时钟周期数。 我们看到,大多数形式的算术运算的发射时间为 1,意思是说在每个时钟周期,处理器都可以开始一条新的这样的运算

笔记本

落爺英雄遲暮 提交于 2020-01-18 23:48:40
***小知识点(容易忽略) 1.整数/整数=整数; 2.浮点数/浮点数=浮点数 (例题7-6 求N分之一序列前N项和 ) 3.实数(浮点数) 4.π=acos(-1.0) ***没有解决的 1.目前没有找到实数比较的文章学习。(例题 求1元二次方程) 2.const 用法 3.反函数的用法 (例如 π) 7-5 计算火车运行时间 *概括 遇见问题 1.边界问题 输入0000 0000 2.在比较时等同问题 1300 1400 3.* 又再一次忽略等值比较和赋值!!! 等值比较== 赋值= 来源: https://www.cnblogs.com/zhouwang/p/12210750.html

BigDecimal类

喜欢而已 提交于 2020-01-18 18:53:43
1.重要意义 1.1.浮点数计算出错 1 public class Main { 2 public static void main(String[] args) { 3 System.out.println(2.0-1.1); 4 } 5 } 1 0.8999999999999999   原因分析:浮点数值不适用于无法接受舍入误差的金融计算中。这种舍入误差的主要原因是浮点数值采用的二进制系统表示,而在二进制系统中无法精确地表示分数1/10.这点就好想十进制无法精确地表示分数1/3一样。如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。 来源: https://www.cnblogs.com/yangyh26/p/12209830.html

python基础代码片段

纵饮孤独 提交于 2020-01-18 18:45:08
python基础代码片段 1.数据类型 1.1强制类型转化、打印类型 2.基本输入输出 2.1 input 、 print 、eval 3.数字计算 3.1科学计数法、复数计算、取实部虚部 3.2双目运算符 3.3单目运算符、增强赋值运算符 3.4 数值运算内置函数 3.4.1 绝对值、幂次、四舍五入 3.4.2 最大值、最小值、divmod 4.字符串 4.1 转义字符 4.2切片、反向输出字符串、反向切片 4.2 格式化 4.3 填充 4.4 精度,千分位分割符 4.5 输出类型 4.6字符串连接、字符串重复几遍、判断是不是子串 4.7字符串处理函数 4.7.1 返回字符串长度、强制转换成字符串、字符串转换成Unicode编码 4.7.2单字符返回Unicode编码、返回对应十六进制小写形式、返回八进制小写形式 4.8字符串处理方法 4.8.1全大写、全小写、按某个字符分割字符串 4.8.2某个字符出现次数、什么字符串换成其他字符串 4.8.3字符串居中、去掉最左或右的一个字符、变量每个元素添加字符 1.数据类型 1.1强制类型转化、打印类型 a = '10' print ( type ( x ) ) #打印x类型 print ( int ( x ) , type ( int ( x ) ) ) #强制转换成int型,并输出类型 print ( float ( x ) ,

java基础之java程序基础(二)--之浮点运算

核能气质少年 提交于 2020-01-18 17:24:53
整数运算 请点击这里--》》 传送门 浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。 在计算机中,浮点数虽然表示的范围大,但是,浮点数有个非常重要的特点,就是浮点数常常无法精确表示。 举个栗子: 浮点数 0.1 在计算机中就无法精确表示,因为十进制的 0.1 换算成二进制是一个无限循环小数,很显然,无论使用 float 还是 double ,都只能存储一个 0.1 的近似值。但是, 0.5 这个浮点数又可以精确地表示。 因为浮点数常常无法精确表示,因此,浮点数运算会产生误差: 浮点数在内存的表示方法和整数比更加复杂。Java的浮点数完全遵循 IEEE-754 标准,这也是绝大多数计算机平台都支持的浮点数标准表示方法。 类型提升 如果参与运算的两个数其中一个是整型,那么整型可以自动提升到浮点型: public class Main { public static void main(String[] args) { int n = 5; double d = 1.2 + 24.0 / n; // 6.0 System.out.println(d); } } 需要特别注意 ,在一个复杂的四则运算中,两个整数的运算不会出现自动提升的情况。例如: double d = 1.2 + 24 / 5; // 5.2 溢出 整数运算在除数为 0 时会报错

MySQL的数据类型(一)

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-18 06:40:10
  每一个常量、变量和参数都有数据类型、它用来指定一定的存储格式、约束和有效范围。MySQL提供了多种数据类型、主要有数值型、字符串类型、日期和时间类型。不同的MySQL版本支持的数据类型可能会稍有不同。    数值类型:   MySQL支持所有标准SQL 中的数值类型、其中包括了严格数值类型、近似数值数据类型、并在此基础上做了一些扩展、增加了三种不同长度的整型。   在整数类型中、按照取值范围和存储方式不同、分为tinyint、smallint、mediumint、int和bigint这五种类型,如果超出类型范围的操作,会发生“Out of range” 错误提示。为了避免此类问题的发生,在选择数据类型的时候要根据应用的实际情况确定其取值范围,最后根据确定的结果去选择数据类型。   对于整型数据,MySQL还支持在类型名称后面的小括号能指定显示宽度,例如 int(5) 表示当数值宽度小于5位的时候在数字前面填满宽度,如果不显示指定宽度则默认为int(11)。一般配合zerofill使用,zerofill就是用“0”填充的意思,也就是在数字位数不够的空间用字符“0”填满。   所有的整数类型都有一个可选属性UNSIGNED(无符号),如果需要在字段里面保存非负数或者需要较大的上限值时,可以用此选项,他的取值范围时正常值得下限取0,上限取原值的2倍,例如tinyint有符号范围是

sprintf函数的用法

久未见 提交于 2020-01-18 04:24:19
自《CSDN 社区电子杂志——C/C++杂志》 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [, argument] ... ); 除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数: 格式化字符串上。 printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。 格式化数字字符串 sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代 itoa。 如: //把整数123 打印成一个字符串保存在s 中。 sprintf(s, "%d", 123); //产生"123" 可以指定宽度,不足的左边补空格: sprintf(s, "%8d%8d", 123,

数字、字符串、时间、格式化类常用函数解读——JAVA

≯℡__Kan透↙ 提交于 2020-01-18 02:59:35
目录 一、数字类 1.1超大数浮点数 1.2超大数整数 1.3随机数: 1.4格式化输出 1.5浮点数和双精度 二、字符串 2.1String 2.2正则表达式的简单说明: 2.3可变字符串StringBuffer/StringBuilder 三、时间类 3.1Calendar 四、格式化类 4.1数字格式化DecimalFormat 4.2字符串格式化 4.3时间格式化 4.3.1DateFormat 4.3.2LocalDate 一、数字类 1.1超大数浮点数 BigDecimal b1 = new BigDecimal("123456789.987654321"); // 声明BigDecimal对象 BigDecimal b2 = new BigDecimal("987654321.123456789"); // 声明BigDecimal对象 System.out.println("b1: " + b1 + ", b2:" + b2); System.out.println("加法操作:" + b2.add(b1)); // 加法操作 System.out.println("减法操作:" + b2.subtract(b1)); // 减法操作 System.out.println("乘法操作:" + b2.multiply(b1)); // 乘法操作 //需要指定位数