Java 浮点数的精确度问题
2024-09-05 00:54:04
题目:
分别获取数字的整数部分、小数部分,如15.12,整数部分为15,小数部分为0.12
package my_package; public class Divide { public static void main(String[] args) { double num = 12.345; //也可以指定调用的方法为static Divide d = new Divide(); //第一种 String[] arr1 = d.divide_1(num); System.out.print("整数部分:" + arr1[0] + " "); System.out.println("小数部分:" + arr1[1]); //第二种 String[] arr2 = d.divide_2(num); System.out.print("整数部分:" + arr2[0] + " "); System.out.println("小数部分:" + arr2[1]); } //将整数、小数拆分为数值,再放在一个字符串数组中返回。但由于计算机表示浮点数时有误差,所以小数部分并不精确 public String[] divide_1(double num){ //获取整数部分 int zhengshu=(int)num; //获取小数部分 double xiaoshu=num-zhengshu; //放在字符串数组中返回 String[] arr={String.valueOf(zhengshu),String.valueOf(xiaoshu)}; return arr; } // 转换为字符串,利用小数点分割,完全精确 public String[] divide_2(double num){ String str=String.valueOf(num); //小数点位置 int index=str.indexOf("."); String zhengshu=str.substring(0,index); String xiaoshu="0."+str.substring(index+1); return new String[]{zhengshu,xiaoshu}; } }
最新文章
- 分享一段数据库中表数据更新SQL
- VMware Workstation 10.0 正式版官方简体中文下载(附序列号)
- No module named caffe
- 在js里面使用php语言
- 使用Jconsole监控weblogic的配置方法
- C#生成唯一的ID保存到数据库
- Instant Buy Android API Tutorial
- 【Linux远程管理】SSH协议远程管理
- (转) linux虚拟机中和主机三种网络连接方式的区别
- 【WebSocket初探 
】
- oracle 11g使用deferred_segment_creation 延迟段创建特性时遇到的问题总结
- odd or even?
- Omi官方插件系列 - omi-transform介绍
- C/C++语言简介之关键字
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习4
- 【CS231N】5、神经网络静态部分:数据预处理等
- Unity知识结构总结
- 栈的应用实例——平衡符号
- angular setInterval计时操作
- ASP.NET SingalR + MongoDB 实现简单聊天室(一):搭建基本框架