java中的浮点(float)运算
一. 关于浮点运算,需要说明的几点:
1. 在java中,进行浮点运算并不会处理例外情况,所以,即使除数为0,也不会有例外被抛出;
2. 当运算结果是溢出(Infinity)时,结果为Infinity;下溢时,则结果为0;若结果是数学上是未定义的,则结果为NaN(not a number);
3. 所有和NaN有关的运算其结果总是NaN;
4. 由于NaN是无序的,所以,和NaN进行数值比较时,其结果总是false.
二. 例子:
public class floattest {
public static void main(String args[]) {
double num = 1.0E200;
System.out.println(num*num);
double num2 = 1.0E-323;
System.out.println(num2/10.0);
System.out.println(1.0/0.0);
System.out.println(-1.0/0.0);
double numNan = 0.0/0.0;
System.out.println(numNan);
System.out.println(numNan > 0);
}
}
三. 测试结果:
/*
Infinity
0.0
Infinity
-Infinity
NaN
false
*/
java中的浮点(float)运算的更多相关文章
- Java中浮点型数据Float和Double进行精确计算的问题
Java中浮点型数据Float和Double进行精确计算的问题 来源 https://www.cnblogs.com/banxian/p/3781130.html 一.浮点计算中发生精度丢失 ...
- Java中的Bigdecimal类型运算
Java中的Bigdecimal类型运算 双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.Java在java.math包中提 供的API类BigD ...
- 关于java中Double类型的运算精度问题
标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改 关键字 Java 浮点数 精确计算 问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...
- 关于java中Double类型的运算精度问题(转)
Java Java double:浮点数:精确计算 public class Test{ public static void main(String args[]){ Syst ...
- java中double和float精度丢失问题及解决方法
在讨论两位double数0.2和0.3相加时,毫无疑问他们相加的结果是0.5.但是问题总是如此吗? 下面我们让下面两个doubles数相加,然后看看输出结果: @Test public void te ...
- java中多个数字运算后值不对(失真)处理方法
最近遇到一个bug ,在java里面计算两个数字相减,633011.20-31296.30 得到的结果居然是601714.8999999999,丢失精度了,原来这是Java浮点运算的一个bug. 解决 ...
- java中的7个位运算运算符
位运算指的是针对整数的二进制进行的位移操作. 位运算提供比算术运算更高的效率,但是位运算的代码可读性较差,建议所有使用位运算的地方写上注释. Java中提供7个位运算符用于位运算. 左移(<&l ...
- java中double和float精度丢失问题
为什么会出现这个问题呢,就这是java和其它计算机语言都会出现的问题,下面我们分析一下为什么会出现这个问题:float和double类型主要是为了科学计算和工程计算而设计的.他们执行二进制浮点运算,这 ...
- java中的按位与运算
package scanner; public class SingleAnd { public static void main(String[] args) { int[] first = {10 ...
随机推荐
- Gradle 用法总结
用过android studio的对gradle应该都不陌生了,gradle文件的基本配置大同小异,略做了解使用应该是没什么问题了.但是深入细致的了解一下对于理解项目还是很有帮助的,尤其是遇到一些配置 ...
- java07循环结构
public class WhileTest { // while循环结构 public static void main(String[] args) { System.out.println(&q ...
- Entity Framework 重写OnModelCreating,控制生成表名的单复数
重写OnModelCreating,控制生成表名的单复数 public class MYDbContext : DbContext { public DbSet<User> Users { ...
- Spring 3.0就这么简单读书笔记
一般情况下,spring容器中的大部分Bean都是单实例的,所以一般无须通过@Repository.@Service.@Component等注解的value属性为Bean指定名称,也无须使用@Qual ...
- C++ 文本读写
写文件: ofstream of; of.open("test.txt"); string content = "abcd"; of.write(content ...
- iOS 网络与多线程--7.Performselector消息处理方法
创建一个IOSApp类 IOSApp.h文件 #import <Foundation/Foundation.h> @interface IOSApp : NSObject // 1.添加一 ...
- Visual Studio使用技巧记录
1.关闭调试,iis express仍显示在托盘中: 工具 ---> 选项 ---> 调试 ---> 编辑并继续,取消选择“编辑并继续”的选择框 2.关闭浏览器一直请求: 在调试旁边 ...
- 武汉科技大学ACM:1007: 文本编辑器
Problem Description YB打算写一个功能强大的文本编辑器,并取一个炫酷拉风,高端优雅的名字,比如“YB牌文本编辑器”之类的.既然功能强大,那肯定得有个查找功能吧.但是他在完成这个功能 ...
- log4j的配置及使用
用日志的好处: 可以长久的保存日志信息. 日志可以保存到:网络.文件.数据库 设置日志的级别. OFF Fatal – System.exit(0); - JVM, ERROR – 错误,模块错误. ...
- C++拾遗(十一)类继承
首先,这里提到的继承都是公用继承. 派生类 1.派生类需要添加自己的构造函数. 2.派生类创建之前会首先创建基类对象,即调用基类构造函数.在派生类构造函数后通过初始化列表将参数传递给基类构造函数. 3 ...