Java对数函数的计算方法非常有问题,然而在API中却有惊人的误差。但是假如运用了以下的方法,用Java处理数字所碰到的小麻烦就可以轻而易举的解决了。

Sun的J2SE提供了一个单一的Java对数方法——double java.lang.Math.log(double),这很轻易使用。请看如下代码:

double x = Math.log(5);

等价于:x = ln 5 或 x = loge5,即以e为底的自然对数。

假如你想使用Java来计算机对数,算底不同的对数又该如何做呢?很遗憾,我们还没有办法计算以10为底或以2为底的对数。但是它们却是在计算Java对数时用的最多的。要想解决这个问题,需要使用数学和对数方程:

logx(y) =loge(x) / loge(y),换底公式

这只需一段简单的Java程序来实现对数的运算:

package com.generationjava.math;

public class Logarithm {

static public double log(double value, double base) {

return Math.log(value) / Math.log(base);

}

}

使用Java对数函数计算100的以10为底的对数就变为非常简单了:

double log = Logarithm.log(100, 10); // log is 2.0

512的以2为底的对数是:

double log = Logarithm.log(512, 2); // log is 9.0

下面的两个简单的Java对数运算方法也都是很有用的:

static public double log2(double value) {

return log(value, 2.0);

}

static public double log10(double value) {

return log(value, 10.0);

对数 java_Java对数函数及Java对数运算相关推荐

  1. 数学的基本运算可分为三个等级。第一级为加、减运算,“连加”或“连减”时发明了第二级运算——乘法和除法,“连乘”和“连除”,即“乘方”。乘方有两种逆运算分别是“开方”和“对数”。这是第三级运算特殊之处

    作者:李狗嗨 链接:https://www.zhihu.com/question/26097157/answer/265975884 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  2. 高三数学第一轮复习:对数与对数函数_习题含解析

    本文作者:vxbomath 大家好,今天分享高中数学函数知识点中对数与对数函数习题解析,通过习题讲解更全面的掌握考点重点.希望能够帮助到高三数学第一轮复习同学. 一.填空题 二.选择题 三.解答题 好 ...

  3. Java位运算之2的N次幂、整数转换、寻找只出现一次的数

    Java位运算 位运算:只能对整数进行位运算,可加快计算机计算速度.因为所有数在内存中都是以二进制存放,故直接对数的二进制位进行操作非常快,比如乘法.除2操作:通过左右移二进制位即可,无需将数转为十进 ...

  4. 两边同时取对数求复合函数_取对数求导法的例题 取对数求导法

    首先 自然对数 就是对e求对数 即ln 对数运算有几个规律 ln(x*y)=lnx lny ln(x/y)=lnx-lny ln(x^y)=y*lnx 这样一来 你应该就明白了吧 lny=ln{[(x ...

  5. Java二进制位运算、移位运算、、

    为什么80%的码农都做不了架构师?>>>    Java二进制位运算.移位运算 思考题 1.请看下面的代码段,回答a,b,c,d,e结果是多少? public static void ...

  6. java比较运算_Java比较运算符

    注意哦: 1.  > . < . >= . <= 只支持左右两边操作数是数值类型 2.  == . != 两边的操作数既可以是数值类型,也可以是引用类型 public clas ...

  7. Java的学习与java大数运算

    之前就学过一点java,但太久没用知识点早就还给书本,之前在实验室搞到一本java的书,今天来重新温习一下 java的语法大部分和c++语言是一样的,入门非常快,所以在这里基础语句的用法就省略了 输出 ...

  8. 关于Java浮点数运算精度丢失问题

    2019独角兽企业重金招聘Python工程师标准>>> 关于Java浮点数运算精度丢失问题 博客分类: java 前几天看了一个朋友的博客,说Java中浮点数运算精度丢失的问题,他给 ...

  9. Java位运算优化:位域、位图棋盘等

    快速小测试:如何重写下面的语句?要求不使用条件判断语句交换两个常量的值. if (x == a) x= b; else x= a; 答案: x= a ^ b ^ x; //此处变量x等于a或者等于b ...

最新文章

  1. 克里斯坦森的破坏性创新—《可以量化的管理学》
  2. 首先声明两者所要实现的功能是一致的(将多维数组降位一维)。这点从两个单词的意也可以看出来,ravel(散开,解开),flatten(变平)。两者的区别在于返回拷贝(copy)还是返回视图(view)
  3. 深度剖析Kubernetes API Server三部曲 - part 1
  4. [050] 微信公众平台开发入门视频教程已公布
  5. IDA Plugin 编写基础
  6. delphi dll是否可用var参数_时间序列之向量自回归(VAR)学习重点
  7. python之路_前端基础之Bootstrap 组件
  8. 使用go来做系统,如何比java node php 更 简单
  9. 上海阅文集团android面试题,2018年阅文集团PHP工程师面试题分享
  10. 剑指offer:滑动窗口的最大值(栈和队列)
  11. 用java在JPanel中建一个表格_如何使用Java在JPanel中显示JTable?
  12. [转] SQL Server试题
  13. 服务器的mdf文件怎么打开,mdf文件用什么打开 mdf文件怎么打开
  14. linux新增字符串,字符串添加字符_Linux使用sed命令添加字符串的方法
  15. 大学学习历程简单总结
  16. 关于ArcGIS的入门建议
  17. 所以Web 3.0到底是什么?
  18. 神经网络多分类的实现总结
  19. Configuring the Salt Minion - Salt Minion配置参数的完全说明
  20. 实现类似涂鸦跳跃的游戏(对象池的使用和背景固定)

热门文章

  1. Mysql经典面试题(建议收藏)
  2. leetcode189 python旋转数组
  3. 网站对接支付宝进行支付
  4. java 刷题ide,力扣(LeetCode)刷题神器之Vs Code
  5. 从csv文件中导入数据到MySQL数据库
  6. 互联网日报 | 微信公众号界面再改版;快手发布“快手联盟”;首家农商行理财子公司获批开业...
  7. 常规设置-Sinon.JS
  8. 常用诊疗操作技术题库【1】
  9. MySQL02--高级(BTreeB+Tree、聚簇索引非聚簇索引、性能分析(Explain)、索引、sql优化)
  10. L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who