Java核心技术卷一学习笔记1

Java核心技术卷一学习笔记1在搞本科生毕设之余,闲下来看看书,写写博客。由于研究生学习要做一个数据可视化的项目,需要用到Java。所以拿了一本《Java核心技术卷一》正在一步步复习之前所学的Java知识。   3.9大数值   如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

       在搞本科生毕设之余,闲下来看看书,写写博客。由于研究生学习要做一个数据可视化的项目,需要用到Java。所以拿了一本《Java核心技术卷一》正在一步步复习之前所学的Java知识。

      3.9大数值

     如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
使用静态的valueOf方法可以将普通的数值转换为大数值:

    BigInteger a=BigInteger.valueOf(val);

    由于Java中没有运算符重载功能,因此C++中“+”和“-”在Java中并不适用。而对应的是BigInteger类中的add和multiply运算。

    下面是一个计算彩票中奖概率的小程序作为练习:

import java.math.BigInteger;
import java.util.Scanner;

/*
 * 用大数值计算中彩概率。
 */
public class BigIntegerTest {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		System.out.println("你想抽多少数字");
		int k=in.nextInt();
		
		System.out.println("数字量多大");
		int n=in.nextInt();
		/*
		 * 计算 n*(n-1)*...*(n-k+1)/(1*2*...*k)
		 */
		BigInteger lotteryOdds=BigInteger.valueOf(1);
		for(int i=1;i<=k;i++)
			lotteryOdds=lotteryOdds.multiply(BigInteger.valueOf(n-i+1)).divide(BigInteger.valueOf(i));
		System.out.println("你的概率是"+lotteryOdds+"分之一");
		
	}

}

Jetbrains全家桶1年46,售后保障稳定

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206575.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • maria和mysql_mysql为什么没有淘汰

    maria和mysql_mysql为什么没有淘汰mysql:driver驱动类为:com.mysql.jdbc.Driverurl为:jdbc:mysql://localhost:3306/testmariadbdriver驱动类为:org.mariadb.jdbc.Driverurl为:jdbc:mariadb://localhost:3306/test

    2022年10月28日
    0
  • oracle分页查询的三种常见方式

    oracle分页查询的三种常见方式oracle分页查询的三种常见方式分页写法:–分页查询一select*from(selectrownumr,e1.*from(select*fromemporderbysal)e1whererownum&lt;=8)wherer&gt;=5;–分页查询二selecte1.*from…

    2022年5月8日
    46
  • Spring Batch Step 流程

    Spring Batch Step 流程–Start顺序流程(SequentialFlow)<jobid="job"><stepid="stepA"parent="s1"next="stepB"/><stepid="stepB"parent="s2"next="stepC"/><stepid="ste

    2022年5月18日
    40
  • ubuntu 18.04 安装桌面_已安装更新版本的onedrive

    ubuntu 18.04 安装桌面_已安装更新版本的onedrive问题在Ubuntu18.04上安装Onedrive问题背景对于文档的同步,还是喜欢用Onedrive,主要因为Onedrive对文档的在线编辑支持很好。Onedrive初始免费容量5G,加上某宝2块钱买的邀请永久扩容10G,总共15G,够我用了。因为有时候需要在实验室的电脑记记笔记,所以问题由此产生。解决办法Ubuntu上的Onedrive貌似没有图形化界面,我安装的是Onedriv…

    2022年9月3日
    2
  • opkg 更新软件[通俗易懂]

    opkg 更新软件[通俗易懂]opkg不同的版本存在不同的配置文件,一般常用的是/etc/opkg.conf、/etc/opkg/customfeeds.conf和/etc/opkg/distfeeds.conf三个。这三个配置文件将会影响opkg运行时软件资源的取向,opkg软件源定义在/etc/opkg/distfeeds.conf(更新/etc/opkg.conf并没有作用)文件中,包含软件源索引的目录路径。下…

    2022年6月13日
    99
  • 建立任务,OSTaskCreate()源码解析

    建立任务,OSTaskCreate()源码解析想让uC/OS-Ⅱ管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务:OSTaskCreate()或OSTaskCreateExt()。OSTas

    2022年7月3日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号