java精确浮点型小数,java练习 计算n位可被浮点数精确表示的小数
原理,穷举生成N-1位定点二进制小数(第N位为1),然后转换成十进制的就行了。
import java.util.Scanner;
public class GetDecimal {
static Vector record = null;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入n,输出n位可被浮点数精确表示的小数");
int len = sc.nextInt();
if (len == 1)
System.out.println(0.5);
else
f(len - 1);
}
public static void f(int len) {
double dec = 0;
int max = (int) Math.pow(2, len) - 1;
for (int i = 0; i <= max; i++) {
dec = getSum(getBinString(i, len) + "1");
System.out.println(dec);
}
}
// 转换成二进制字符串
public static String getBinString(int i, int len) {
StringBuffer str = new StringBuffer(Integer.toString(i, 2));
for (int j = 0; str.length() != len; j++) {
str.insert(0, "0");
}
return str.toString();
}
// 计算值
public static double getSum(String s) {
double sum = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '1') {
sum += Math.pow(2, -(i + 1));
}
}
return sum;
}
}
java精确浮点型小数,java练习 计算n位可被浮点数精确表示的小数相关推荐
- Java中使用BigDecimal进行浮点数精确计算 超大整数 浮点数等计算,没有数位限制...
(注:前面写了一个超大整数相加的类,参见: 超大整数相加,超过了long的范围,你要怎么做!,后来有朋友评论说BigDecimal可以完全实现我的这这个功能,刚开始的时候,我还不服气,据我所知那里有这 ...
- Java中使用BigDecimal进行浮点数精确计算 超大整数 浮点数等计算 没有数位限制
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! (注:前 ...
- 第二章 Java浮点数精确计算
1.实际意义 在实际开发中,如果需要进行float或double的精确计算(尤其是财务计算),直接使用float或double是不行的(具体的例子看下边的代码的main方法的测试结果),需要使用Big ...
- java 不四舍五入 保留,java保留两位小数(不四舍五入)
这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 复制代码 代码如下: mport java.text.DecimalFormat; DecimalFormat d ...
- java浮点运算很难,java浮点型为什么不能用于严格要求精度的运算
大家都知道一个事实在java中2.0-1.1 使用浮点数运算的结果是0.89999999而不是我们期望的0.9.一般业务环境中,这似乎不是一个大问题,但是如果运用到银行系统,精密产品制造领域的自动化控 ...
- java.math.BigDecimal的用法-商业计算
如果我们编译运行下面这个程序会看到什么? public class test{ public static void main(String [] args){ Syste ...
- 基于java的简单英雄联盟胜率计算
基于java的简单英雄联盟胜率计算 首先声明,楼主是一个LOLer,技术还说的过去.今天下午楼主的同学看到楼主匹配胜率感人,非说楼主是"小学生",非说匹配胜率要50%以上才算不坑, ...
- java后端实现加减乘除和比例计算
java后端实现加减乘除和比例计算 在 java.math 包中提供了 API 类 BigDecimal 用来对超过 16位有效位的数进行精确的运算. BigDecimal 所创建的是对象,所以不能使 ...
- java计算胜率_基于java的简单英雄联盟胜率计算
基于java的简单英雄联盟胜率计算 首先声明,楼主是一个LOLer,技术还说的过去.今天下午楼主的同学看到楼主匹配胜率感人,非说楼主是"小学生",非说匹配胜率要50%以上才算不坑, ...
最新文章
- JavaEE进阶知识学习-----SpringCloud(四)Eureka集群配置
- 好的开始是成功的一半:网页优化之标题篇
- 解决java.lang.UnsupportedClassVersionError: Bad version number in .class file问题
- RSS接触 - 实战RSS文档输出
- 入门 | 32 个常用 Python 实现
- 941. 有效的山脉数组
- day48 Pyhton 数据库Mysql 05
- 内蒙古自治区赤峰市谷歌高清卫星地图下载(百度网盘离线包下载)
- 大学生计算机vfp,计算机vfp教学课件
- 写在控制层的VO是什么?
- labview 霍夫曼树_Huffman tree(赫夫曼树、霍夫曼树、哈夫曼树、最优二叉树)
- mysql ix is_关于MySQL中的共享锁(S)、排它锁(X)、意向共享锁(IS)、意向排它锁(IX)...
- oracle双活什么意思,什么是双活数据中心
- BAT、华为、头条等各大互联网公司职级、薪资、股权大揭秘
- xampp php搭建失败,ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败),thinkphpxampp...
- My blog has been migrated to GitHub.
- 职场遭遇“小人”,你如何应对?
- linux里hba状态_Linux更换HBA卡后重新扫盘指令
- 小生意汽车配件销售管理软件选型
- 第六届蓝桥杯大赛个人赛决赛(C/C++大学B组)
热门文章
- 数据库笔记1:数据库基本语句
- ubuntu root下的无密码登陆
- 最大子段和问题分析和总结
- 视频编解码的理论和实践2:Ffmpeg视频编解码
- MYSQL远程连接数据库
- oracle 实现基于函数的索引
- XAMPP 相关设置(linux下的)
- bp神经网络应用实例_人工智能BP神经网络学习神器——AISPACE
- 基于matlab_simulink的捷联惯性导航系统仿真,基于MATLAB/Simulink的捷联惯性导航系统仿真...
- python读取指定行的txt_【Python】读取txt文件,获取指定行中指定位置数据