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)
上一篇 2025年8月7日 下午5:22
下一篇 2025年8月7日 下午6:01


相关推荐

  • idea主题样式插件[通俗易懂]

    idea主题样式插件[通俗易懂]1、File->Settings…->Plugins中搜索MaterialThemeUI,然后点击安装,安装完成后重启Idea2、重启后会自动进入设置样式界面3、进入后可自己重新配置File->Settings…->Editor->ColorScheme进行设置还有背景图设置在plugin中添加backgroundIma…

    2022年6月27日
    74
  • wireshark安装问题「建议收藏」

    [root@lc~]#tsharkRunningasuser”root”andgroup”root”.Thiscouldbedangerous.Capturingoneth0tshark:Unknownmessagefromdumpcap,trytoshowitasastring:/usr/sbin/dumpcap:sy…

    2022年4月15日
    128
  • 静态链表和动态链表的区别

    静态链表和动态链表的区别静态链表和动态链表的区别 静态链表和动态链表是线性表链式存储结构的两种不同的表示方式 1 静态链表是用类似于数组方法实现的 是顺序的存储结构 在物理地址上是连续的 而且需要预先分配地址空间大小 所以静态链表的初始长度一般是固定的 在做插入和删除操作时不需要移动元素 仅需修改指针 2 动态链表是用内存申请函数 malloc new 动态申请内存的 所以在链表的长度上没有限制 动态链表

    2026年3月18日
    2
  • spring源码搭建_springmvc常用5种注解

    spring源码搭建_springmvc常用5种注解1、Spring源码下载第一步:https://github.com/spring-projects/spring-framework从git上面下载Spring的源码第二步:下载http://services.gradle.org/distributions/(笔者采用的是4.7版本)第三步:解压gradle-4.7-all.zip,配置GRADLE_HOME和PathGRADLE_HOME…

    2022年8月12日
    10
  • vue 动态绑定class名

    vue 动态绑定class名1 先看效果 2 动态 class 绑定 span class sp head as 999 click as 999 Unpublished 未发布 span class sp head as 888 click as 888 Published 已发布 1 sp head 第一个名字在下边 class 直接设置样式 2 as 999 第二个 span class sp head as 888 click as 888 Published span class sp head as 999 click as 999 Unpublished

    2026年3月17日
    3
  • qt 获取窗口句柄「建议收藏」

    qt 获取窗口句柄「建议收藏」HWNDappwnd;appwnd=(HWND)w.winId();QStringClassName(“Qt5QWindowIcon”);QStringAppName=QStringLiteral(“GG”);LPCWSTRapp=reinterpret_cast(ClassName.data());LPCWSTRappCaption=reinterpret_

    2022年7月21日
    159

发表回复

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

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