Java Math.pow(x,y)的使用坑
来源:互联网 发布:python量化 编辑:程序博客网 时间:2024/04/29 15:50
Java Math.pow(x,y)的使用坑,项目中为了比较一些业务数据,使用到了这个函数:如下:
public void setBaseLineData(double baseLineData) {if (Math.abs(this.baseLineData - baseLineData) > Math.pow(0.1, getBaseLineLabelFraction())) {System.out.println("有没有进来这里=============重新设置base的值");this.baseLineData = baseLineData;refreshState();}}
这里面有一个问题就是如果y的参数为0的话,Math(0.1,0)的数值就是1,也就是任何数的0次方都为1,哎,好久没学数学了都.记录一下:
因为Math.pow(x,y)这个函数是求x的y次方,x,y的值都是浮点类型的,而你现在要求的是pow(64,1/3),那么也就是64的1/3次方,如果我们口头上来算的话,可以看成64的3次方根,但是计算机不会这样算,他会先求出1/3的值,1/3中1和3均为int类型,所以值为0,然后y这个值是浮点类型,所以自动转换为0.0,任何数字的0次幂都为1,所有这个地方求出来的值为1,而不是4,有时候我们不能以数学的方式来判断计算机的算法,
还有如果求一个数值的绝对值也可以使用Math.abs()之前一直还想自己进行判断,原来早有提供.写了一个测试程序,展示如下:
public class Ceshi {public static void main(String[] args) {double powceshi = Math.pow(0.1, 0);double powdouble1 = Math.pow(0.1, 0.1);double powdouble2 = Math.pow(0.1, 0.01);double powdouble3 = Math.pow(0.1, 0.001);double powdouble4 = Math.pow(0.1, 0.0001);double powdouble5 = Math.pow(0.1, 0.00001);System.out.println("当为0的情况下的Math.pow(0.1, 0)" + powceshi);System.out.println("输出的数值为Math.pow(0.1, 0.1):" + powdouble1);System.out.println("输出的数值为Math.pow(0.1, 0.01):" + powdouble2);System.out.println("输出的数值为Math.pow(0.1, 0.001):" + powdouble3);System.out.println("输出的数值为Math.pow(0.1, 0.0001):" + powdouble4);System.out.println("输出的数值为Math.pow(0.1, 0.00001):" + powdouble5);}}结果如下:
当为0的情况下的Math.pow(0.1, 0)1.0输出的数值为Math.pow(0.1, 0.1):0.7943282347242815输出的数值为Math.pow(0.1, 0.01):0.9772372209558107输出的数值为Math.pow(0.1, 0.001):0.9977000638225533输出的数值为Math.pow(0.1, 0.0001):0.9997697679981565输出的数值为Math.pow(0.1, 0.00001):0.9999769744141629
0 0
- Java Math.pow(x,y)的使用坑
- Java中Math.pow( )的使用
- c语言中的pow(x, y)的使用
- pow(x,y)函数的实现算法
- 一种改进的pow(x,y)
- pow计算x的y次方
- pow() 函数返回 x 的 y 次方
- pow(x,y)函数
- Java中Math.pow()的用法
- Java平方不能用^ .用Math.pow(x, 2)
- pow(x,y)函数的用法及实现算法
- LeetCode[Math]----Pow(x, n)
- python使用opengl绘制圆,y=x**2,y=math.sqrt(x)
- 使用java实现pow(x,n)函数
- Math.random()随机产生【x,y)的随机数
- CareerCup calculate (x^y)%z without pow();
- Java.math.BigDecimal.pow() Method
- Java – Math.pow example
- Jquery操作radio,checkbox,select表单操作实现代码
- iOS基于WebSocket聊天机制(主要运用Facebook第三方SocketRocket)
- iOS 10 兼容
- Java:Struts2+Hibernate4+Spring实现图友网
- java--联系人管理系统(2)
- Java Math.pow(x,y)的使用坑
- html drag 拖拽元素
- 欢迎使用CSDN-markdown编辑器
- Linux文件搜索命令
- MYSQL 导出与导入sql文件
- 微信红包开发设计思路
- Spring 配置读取config.properties配置信息
- MFC/VC++/VS 控件随对话框尺寸变化
- CodeForces 616D Longest k-Good Segment(尺取)