BigDecimalDemo 数学相关
package 数学相关类;
import java.math.BigDecimal;
public class BigDecimalDemo
{
public static void main(String[] args)
{
// float和double都不能表示精确的小数,此时使用BigDecimal
// TODO Auto-generated method stub
System.out.println("0.09 + 0.01 ="+(0.09+0.01));
System.out.println("1.00 - 0.33 ="+(1.00-0.33));
//
// BigDecimal b1 = new BigDecimal(0.09);
// BigDecimal b2 = new BigDecimal(0.01);
// // 0.1 ?
// System.out.println(b1.add(b2)); 因为在0.09是double类型,创建b1就已经不精确了
BigDecimal b1 = new BigDecimal("0.09");
BigDecimal b2 = new BigDecimal("0.01");
System.out.println(b1.add(b2));
BigDecimal b3 = new BigDecimal("0.0123");
System.out.println(b3.scale());// 4
// 除法
BigDecimal b4 = new BigDecimal("1.");
BigDecimal b5 = new BigDecimal("3.00");
// System.out.println(b4.divide(b5));// 如果是1.0 / 3.0 ,报异常java.lang.ArithmeticException
//divide(b5,有效位数,舍入规则)
System.out.println(b4.divide(b5,5,BigDecimal.ROUND_FLOOR));
// b4.compareTo(b5) 比较 -1(b6<b7) 0 1(b6>b7)
BigDecimal b6 = new BigDecimal("3.14");
BigDecimal b7 = new BigDecimal("3.1450");
System.out.println(b6.compareTo(b7));
System.out.println(b6.equals(b7));
}
}
public class MathDemo
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
// static double E
// 比任何其他值都更接近 e(即自然对数的底数)的 double 值。
//static double PI
// 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
System.out.println(Math.E);
System.out.println(Math.PI);
// abs 求绝对值
System.out.println(Math.abs(-10.4));
System.out.println(Math.abs(10.1));
// 浮点数 -> 整数
// 1. ceil 天花板
System.out.println(Math.ceil(10.1));// 11
System.out.println(Math.ceil(-10.1));// -10
// 2. floor地板
System.out.println(Math.floor(10.1));// 10
System.out.println(Math.floor(-10.1));// -11
// 3. 更靠近的整数
// rint(double a)
// 返回最接近参数并等于某一整数的 double 值。// 如果是.5 会取整数
System.out.println(Math.rint(10.4));
System.out.println(Math.rint(10.5));// -> 10
System.out.println(Math.rint(11.5));// -> 12
// 4. round四舍五入
System.out.println(Math.round(10.4));
System.out.println(Math.round(10.5));// -> 10
System.out.println(Math.round(11.5));// -> 12
// 作业:
// 手机上一个打飞机游戏(屏幕大小:320*568,左上角为原点0,0)
// 上方出现一个敌机(160,50)
// 你的飞机坐标(200,500)
// 敌机向你发射子弹,子弹速度100pt/s (如果向正下方发射 1s后到达160,150)
// 计算发射后每帧的子弹路径点,直到集中你的飞机位置
// (fps是30,每秒的帧数就是30帧,也就是,每秒钟屏幕要刷新30次,),一秒钟计算30次。时间间隔是1/30=0.033333
// 子弹的起始位置:(160,50) -> 子弹的终止位置是:(200,500)
}
}
最后更新于 2022-06-25 22:51:01 并被添加「」标签,已有 1512 位网友阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭