一、问题

三角函数在Java中是怎么表示的?

二、解答

2.1、Math中的三角函数

首先来看一下,Java中的Math怎么表示30°角的弧度制,这里Math中有一个常量PI,就是π;

我们知道sin30°=0.5;Java中却是近似值:

2.2、保留小数

我们采取近似值,保留2位小数,采用四舍五入进位模式,即

RoundingMode.HALF_UP

,达到了一半就进位;

这里的“一半”是当前进制下,目标所在位权重值的(0.5*进制值)倍,如果是十进制,所在位为个位,那么个位达到了十进制的一半,即5,就向上进1位;

2.3、例子

package Math;

import java.math.BigDecimal;

import java.math.RoundingMode;

public class TestMathTadisans {

/**

*@author Taozc

*@2018-6-10 01:02:16

*/

public static void main(String[] args) {

//sin30° =0.5;

System.out.println("30度角的正弦值:"+new BigDecimal(Math.sin(Math.PI/6)).setScale(2, RoundingMode.HALF_UP)+"(保留2为小数,四舍五入)");

//cos60° =0.5;

System.out.println("60度角的余弦值:"+new BigDecimal(Math.cos(Math.PI/3)).setScale(2, RoundingMode.HALF_UP)+"(保留2为小数,四舍五入)");

//tan45° =1;

System.out.println("45度角的正切:"+new BigDecimal(Math.tan(Math.PI/4)).setScale(2, RoundingMode.HALF_UP)+"(保留2为小数,四舍五入)");

//正弦值为0.5对应的弧度是π/6≈0.5236,角度是30°;

System.out.println("正弦值为0.5所对应的反正弦值(对应的弧度):"+new BigDecimal(Math.asin(0.5)).setScale(2, RoundingMode.HALF_UP)+"(保留2为小数,四舍五入)");

//余弦值为0.5对应的弧度是π/3≈1.047,角度是60°;

System.out.println("余弦值为0.5所对应的反余弦值(对应的弧度):"+new BigDecimal(Math.acos(0.5)).setScale(2, RoundingMode.HALF_UP)+"(保留2为小数,四舍五入)");

//正弦值为0.5的弧度是π/4≈0.5236,角度是45°;

System.out.println("正切值为1所对应的反正切值(对应的弧度):"+new BigDecimal(Math.atan(1)).setScale(2, RoundingMode.HALF_UP)+"(保留2为小数,四舍五入)");

//正弦值为0.5对应的弧度是π/6≈0.5236,角度是30°;

System.out.println("正弦值为0.5所对应的反正弦值(对应的角度):"+Math.toDegrees(Math.asin(0.5)));

//余弦值为0.5对应的弧度是π/3≈1.047,角度是60°;

System.out.println("余弦值为0.5所对应的反余弦值(对应的角度):"+Math.toDegrees(Math.acos(0.5)));

//正弦值为0.5的弧度是π/4≈0.5236,角度是45°;

System.out.println("正切值为1所对应的反正切值(对应的角度):"+Math.toDegrees(Math.atan(1)));

System.out.println("将60度角转化为弧度:"+new BigDecimal(Math.toRadians(60)).setScale(2, RoundingMode.HALF_UP));

System.out.println("将“六分之一π”弧度转化为角度"+new BigDecimal(Math.toDegrees(Math.PI/6)).setScale(2, RoundingMode.HALF_UP));

}

}

2.4截图:

三、反思

这里还有一个不好的地方,就是弧度制转角度的时候,是近似值,但是实际应该是整数;比如30°对应的是六分之一π,但是上面打印出来的值是30.000000000000004,这是为什么呢,这是由于π是无限不循环小数,π除以6,还是一个无限不循环小数,怎么等于30这个值呢?其实,这里应该好好理解下30°,这里别忘了,我们还有一个单位:度,度是什么?度是一个圆,我们切成360份,一份叫一度,30°就是:30×(圆÷360),这里的“度”就是“圆÷360”,我们把汉字“圆”用2π来代替,就变成了“2π÷360”,即“π÷180”,这个就是“°”的本质,她最精确的值(无限不循环);计算机精确度有限,让它表示一个无限不循环小数,她只能近似表达;

在java中怎么表示三角函数_【Math】三角函数在Java中是怎么表示的?相关推荐

  1. java为何重复调用方法_通过反射调用Java中的getter:重复调用它的最快方法是什么(在性能和可伸缩性方面)?...

    小编典典 您可以使用MethodHandle.其Javadoc写道: 使用Lookup API中的工厂方法,可以将Core Reflection API对象表示的任何类成员转换为行为等效的方法句柄.例 ...

  2. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  3. java.线程池 线程数_如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...

    java.线程池 线程数 此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因 ...

  4. java获取vm运行参数_如何获取在Java中运行Java VM的版本?

    java获取vm运行参数 To get the version of running VM (Virtual Machine) in Java, we use the getProperties() ...

  5. java中二进制怎么说_面试:说说Java中的 volatile 关键词?

    volatile 这个关键字可能很多朋友都听说过,或许也都用过.在 Java 5 之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在 Java 5之后,volatile 关 ...

  6. java文件替换一行数据_用Golang替换文件中的一行

    我是Golang的新手,从一些例子开始 . 目前,我要做的是逐行读取文件,并在满足特定条件时将其替换为另一个字符串 . 该文件用于测试目的包含四行: one two three four 处理该文件的 ...

  7. 6.java中什么是类_类、对象(java基础知识六)

    1.Java约定俗成 java约定俗成1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用英语 ...

  8. java中接口私有反方_接口中的Java 9私有方法

    java中接口私有反方 Java 9 has been released and there has been a lot of changes. Today we will look into Ja ...

  9. java scp 传文件乱码_转-linux 打开移动硬盘中的文本文件显示为乱码

    我最近发现很奇怪的问题,为什么我的Linux 明明可以显示中文,也可以保存中文文本文件,但是打开移动硬盘中保存的文本文件还是乱码.最后搜索了半天才找到了答案. 编码不同, 点击(此处)折叠或打开 vi ...

  10. java项目中没有jdk包_彻底搞懂Java开发工具包(JDK)安装及环境变量配置

    一.Java 和 JDK 是什么 Java:Java是一种优秀的程序设计语言,它有非常多的语言特性,如简单性.面向对象.可移植性等.Java 并不只是一种语言,而是一个完整的平台,它有一个庞大的库,其 ...

最新文章

  1. android-cmake环境变量
  2. opencv2函数学习之threshold:实现图像阈值化
  3. ASP.NET 安全认证(一)
  4. java设计模式3--单例模式(Singleton)
  5. MYSQL查表的字段名称,字段类型,字段长度,字段注释的SQL语句
  6. 归并排序Python代码
  7. UnityShader1:渲染流水线
  8. javacv解码、录制视频,保存图片
  9. 上传,修改头像的使用
  10. JAVA作业——工资个税计算器
  11. 严肃讨论:如何自给自足获取自主学习磁力种子?
  12. 图书馆下午四点关门,我深刻检讨
  13. 图片转成base64格式上传至数据库
  14. js验证固定电话(座机)、手机号码
  15. SpringBoot+Vue项目学生选课系统
  16. 悟空,愿你永不怕天高地厚
  17. 有史以来,最牛的一段代码......
  18. qt通过Tcp和SQL实现仿qq的聊天软件
  19. 2023最新小熊的日记图文列表布局小程序模板源码
  20. JDK8新特性(五):JDK8时间日期API

热门文章

  1. Usability Testing Demystified
  2. 为何大多数人还在学Java 目前Java好就业吗
  3. MOOC北京理工《C语言程序设计(上)》第4周第2题:确定母亲节
  4. 能卷死同行的收银系统源码--连锁门店/美业/订货/saas/java/php
  5. 百度扩容软件V.2.3版,第四代扩容带自助修复功能
  6. python画出送花表情图编程_python画微信表情符的实例代码
  7. 离职后的总结与感想(一)
  8. 大数据训练营-hadoop篇-02
  9. 小米组织架构调整:雷军兼任中国区总裁,王川组建大家电部发力白电市场
  10. PTA---计算天数