java 浮点数
package precisenumber;
//import java.util.*;
public class PreciseNumber {
public int fore;
public int after;
public void DTI(double num)// double to int
{
String numStr = Double.toString(num);
String foreStr = numStr.substring(0, numStr.indexOf("."));
String afterStr = numStr.substring(numStr.indexOf(".") + 1);
this.fore = Integer.parseInt(foreStr);
this.after = Integer.parseInt(afterStr);
}
public double ITD()// int to double
{
String numStr = this.fore + "." + this.after;
double num = Double.parseDouble(numStr);
return num;
}
public void putNum(double num) {
System.out.println("number" + num);
}
public static void main(String[] args) {
}
}
package precisenumber;
import java.util.Scanner;
public class text {
private PreciseNumber Num1 = new PreciseNumber();
private PreciseNumber Num2 = new PreciseNumber();
private PreciseNumber result = new PreciseNumber();
public double getNum() {
Scanner in = new Scanner(System.in);
double num = in.nextDouble();
return num;
}
public void add(double num1, double num2) {
Num1.DTI(num1);
Num2.DTI(num2);
result.fore = Num1.fore + Num2.fore;
result.after = Num1.after + Num2.after;
double num;
num = result.ITD();
result.putNum(num);
}
public void subtract(double num1, double num2) {
Num1.DTI(num1);
Num2.DTI(num2);
result.fore = Num1.fore - Num2.fore;
result.after = Num1.after - Num2.after;
double num;
num = result.ITD();
result.putNum(num);
}
public void multiplication(double num1, double num2) {
Num1.DTI(num1);
Num2.DTI(num2);
result.fore = Num1.fore * Num2.fore;
result.after = Num1.after * Num2.after;
double num;
num = result.ITD();
result.putNum(num);
}
public void devide(double num1, double num2) {
Num1.DTI(num1);
Num2.DTI(num2);
result.fore = Num1.fore / Num2.fore;
result.after = Num1.after / Num2.after;
double num;
num = result.ITD();
result.putNum(num);
}
public static void main(String[] args) {
text operate = new text();
System.out.println("Input num 1:");
double num1 = operate.getNum();
System.out.println("Input num 2:");
double num2 = operate.getNum();
System.out.println("选择操作:");
System.out.println("1.加 2.减 3.乘 4.除");
Scanner in = new Scanner(System.in);
int i = in.nextInt();
switch (i) {
case 1:
operate.add(num1, num2);
break;
case 2:
operate.subtract(num1, num2);
break;
case 3:
operate.multiplication(num1, num2);
break;
case 4:
operate.devide(num1, num2);
break;
}
}
}
java 浮点数的更多相关文章
- js,java,浮点数运算错误及应对方法
js,java浮点数运算错误及应对方法 一,浮点数为什么会有运算错误 IEEE 754 标准规定了计算机程序设计环境中的二进制和十进制的浮点数自述的交换.算术格式以及方法. 现有存储介质都是2进制.2 ...
- Java浮点数float,bigdecimal和double精确计算的精度误差问题总结
(转)Java浮点数float,bigdecimal和double精确计算的精度误差问题总结 1.float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结 ...
- Java 浮点数精度丢失
Java 浮点数精度丢失 问题引入 昨天帮室友写一个模拟发红包抢红包的程序时,对金额统一使用的 double 来建模,结果发现在实际运行时程序的结果在数值上总是有细微的误差,程序运行的截图: 输入依次 ...
- java浮点数剖析
定点数表达法的缺点在于其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数.计算机系统采纳了所谓的浮点数表达方式.这种表达方式利用科学计数法来表达 ...
- JAVA浮点数计算精度损失底层原理与解决方案
浮点数会有精度损失这个在上大学的时候就已经被告知,但是至今完全没有想明白其中的原由,老师讲的时候也是一笔带过的,自己也没有好好琢磨.终于在工作的时候碰到了,于是google了一番. 问题: 对两个do ...
- java浮点数存储
转自: [解惑]剖析float型的内存存储和精度丢失问题 1.小数的二进制表示问题 首先我们要搞清楚下面两个问题: (1) 十进制整数如何转化为二进制数 算法很简单.举个例子,11表示成二进制数: ...
- 第二章 Java浮点数精确计算
1.实际意义 在实际开发中,如果需要进行float或double的精确计算(尤其是财务计算),直接使用float或double是不行的(具体的例子看下边的代码的main方法的测试结果),需要使用Big ...
- [转] 商业应用中Java浮点数的精确计算及表示
[From] https://blog.csdn.net/stevene/article/details/586089 问题提出 (1).浮点数精确计算 胜利油田三流合一项目中一直存在一个问题,就是每 ...
- java浮点数精度问题解决方法
基础知识回顾: BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOW ...
- Java 浮点数的范围和精度
本篇先介绍IEEE754标准中针对浮点数的规范,然后以问答形式补充有关浮点数的知识点. (一)IEEE754标准 IEEE 754 标准即IEEE浮点数算术标准,由美国电气电子工程师学会(IEEE)计 ...
随机推荐
- LeetCode OJ--Minimum Path Sum **
https://oj.leetcode.com/problems/minimum-path-sum/ 对一个grid从左上角到右下角的路径,求出路径中和最小的. 受之前思路的影响,就寻思递归,并且记录 ...
- AC日记——城市 洛谷 P1401
题目描述 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最长的边的长度最小,边不能 ...
- Win10下 tensorflow gpu版安装
准备: 系统环境: windows10 + Anaconda3 + Pycharm (1)环境配置: 打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些: 输入: conda co ...
- UVA 10635 Prince and Princess【LCS 问题转换为 LIS】
题目链接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=19051 题意: 有两个长度分别为p+1和q+1的由1到n2 ...
- Cookie安全与CSRF和XSS攻击知识点收集
个人简单理解: 1.XSS最简单的理解就是可以在表单提交的内容上嵌入JS执行代码,然后页面渲染的时候没有过滤时会自动执行这个脚本. 2.CSRF可以理解为当你登录了京东,浏览器上保存了你登录的Cook ...
- 设计模式——介绍与工厂模式(扁平管理模式VS职业经理人模式)
本文主要对设计模式进行大概解说.特别是对工厂模式进行简明的解析: 一.设计模式的分类 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式. ...
- 每天一个 Linux 命令(16):which whereis locate命令
which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置.#whereis 和locate是从文件数据库里查找 数据库默认一个星期更新一次,所有 ...
- docker 容器 日志占用空间过大问题处理
docker 容器 日志占用空间过大问题处理 # 2017 10 09 优化docker 运行产生的日志 path=/var/lib/docker/containers/ cd $path for f ...
- iOS学习笔记12-网络(一)NSURLConnection
一.网络请求 在网络开发中.须要了解一些经常使用的请求方法: GET请求:get是获取数据的意思,数据以明文在URL中传递,受限于URL长度,所以数据传输量比較小. POST请求:post是向serv ...
- Effective Go(官方文档)笔记
Effective Go(官方文档)笔记 自己主动局部变量提升(编译期完毕?):return &...; 内置函数: new/make copy, append delete range(这是 ...