首页 > 其他分享 >9.28

9.28

时间:2024-09-28 21:46:22浏览次数:8  
标签:高精度 double 9.28 数值 字符串 枚举 类型

1:在 Java 中,枚举类型是一种特殊的数据类型,用于定义一组有限的常量值。以下是枚举类型的一些基本用法:
一、定义枚举类型
二、使用枚举常量
三、遍历枚举常量
四、在 switch 语句中使用枚举常量
五、添加属性和方法

2:在 Java 中,double 类型的数值进行运算得不到 “数学上精确” 的结果,主要有以下几个原因:
一、二进制存储方式
计算机中的数字是以二进制形式存储的。而有些十进制小数无法精确地用二进制表示。例如,0.1 在十进制中是一个简单的小数,但在二进制中却无法精确表示,它是一个无限循环小数。
double 类型使用 64 位来存储一个数值,其中一部分用于存储指数,一部分用于存储尾数。这种存储方式决定了它只能近似地表示某些十进制数值。
二、舍入误差
在进行数值运算时,计算机可能会对结果进行舍入操作,以适应 double 类型的有限精度。舍入可能会导致结果与数学上的精确值存在微小的差异。
例如,进行多次累加操作时,每次舍入误差可能会累积起来,最终导致结果与预期的精确值相差较大。
三、有限的精度范围
double 类型虽然可以表示很大范围的数值,但它的精度是有限的。对于非常大或非常小的数值,以及需要高精度计算的情况,double 类型可能无法满足要求。
比如,在进行高精度计算,如金融领域的货币计算、科学计算中的高精度数值运算等,double 类型的精度可能不够,需要使用专门的高精度数值类型,如 java.math.BigDecimal。
为了获得更精确的数值结果,可以考虑使用专门的高精度数值类型或采用合适的算法来减少误差。例如,在需要高精度计算的场景下,可以使用 BigDecimal 类,它可以提供任意精度的十进制数值运算。

3: 1 x+y=100200 2 300=x+y
对于第一行输出语句System.out.println("X+Y="+X+Y);,在进行字符串拼接时,从左到右进行运算。首先遇到"X+Y="这个字符串,然后遇到变量X,由于后面还有一个+号且下一个操作数Y也不是字符串,所以这里将X的值(100)转换为字符串与"X+Y="进行拼接,得到"X+Y=100",接着再遇到Y,又将Y的值(200)转换为字符串与前面的结果拼接,最终输出"X+Y=100200"。
对于第二行输出语句System.out.println(X+Y+"=X+Y");,先计算X+Y的值,即 100+200=300,然后将这个整数值转换为字符串与"=X+Y"拼接,最终输出"300=X+Y"。

标签:高精度,double,9.28,数值,字符串,枚举,类型
From: https://www.cnblogs.com/yololin/p/18438478

相关文章

  • csp模拟赛 6 9.28
    0+40+10+0一言以蔽之曰“一上午白干”T1一般图最小匹配首先,对答案有贡献的点对一定在排序后的位于相邻位置所以排序后取出所有\(a_{i+1}-a_{i}\)但不能像Kruskal一样每次取最小,因为其只需要考虑连通性,不涉及其它限制。所以用dp或者可反悔贪心取最优解点击查看代码#in......
  • 2024.9.28 代码源模拟赛
    省流:\(45+20+5+0=70\)简称:唐诗在此膜拜\(klz\)\(Heldivis\)\(Sorato\)\(czl\)\(Ech0\_7\)yxanslihe_qwq大佬T1先看的T1,想了一个拓排(其实是看错题了),然后过了第一个样例,然后咋调都过不去,就去码暴力了。过了大概10min发现看错题了,然后一会就想出来个\(O(n^2)\)......
  • 2024.9.28 计划
    项目学习ROS第二章学完背包问题求方案数背包问题求具体方案总结ROS第二章总结三种基本的通信方式都解决了。步骤和框架参照上两篇和ubantu中的demo框架即可。前两种通信方式的比较:发布-订阅模式服务器通信通信模式发布/订阅请求/响应同步性异步同......
  • 团队练习记录2024.9.28
    B-MagicalSubsequencehttps://codeforces.com/gym/103447/problem/B桶+stack,这里用map会TLEstack用一次时间复杂度\(O(1)\)\(156ms/1000ms\)#include<iostream>#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;voidfio(){ ios::sync_wit......
  • 9.28
    最小化\[2\sqrt{5-4\cos\theta}+\sqrt{5-4\sin\theta}\]可化为\[\begin{aligned}&2\sqrt{5-4\cos\theta}+\sqrt{5-4\sin\theta}\\=&\sqrt{20-16\cos\theta}+\sqrt{5-4\sin\theta}\\=&\sqrt{(2\cos\theta-4)^2+(2\sin\theta)......
  • 9.28日报
    p37动手动脑输出结果为:falsefalsetrueSMALLMEDIUMLARGE第一行 false 是因为 s 和 t 是不同的枚举实例。第二行 false 是因为枚举不是原始类型。第三行 true 是因为 s 和 u 是相同的枚举实例。接下来的三行分别打印出枚举 Size 的所有成员: SMALL 、 ......
  • 9.28日随笔
    动手动脑P37枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象,可以使用“”和equals()方法直接比对枚举变量的值,对于枚举类型的变量,“”和equals()方法执行的结果是等价的,枚举为引用类型得到结果为falsefalsetrueSMALLMEDIUMLARGE动手......
  • java动手动脑-2024.9.28
    枚举类publicclassEnumTest{publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;System.out.println(s==t);System.out.println(s.getClass().isPrimitive());Sizeu=Size.valueOf(&quo......
  • 9.28博客(动手动脑)
    importjava.util.Random;publicclassRandomStr{publicstaticvoidmain(String[]args){//调用generateRandomString方法生成验证码StringverificationCode=generateRandomString();//输出生成的验证码System.out.println("生成的验证码为:"+verificationCode);......
  • 2024.9.28 test
    十三联测#9B给出\(n\)个长度为\(m\)的不同的\(01\)串\(s_i\)。定义长度\(nm\)的好的字符串每\(m\)位都是某个\(s_i\),且\(i\)互不相同。你有打字机,有两种操作,一种是\(p\)的概率打出\(1\),\(1-p\)概率打出\(0\);第二种把\(01\)交换。问最佳操作下,能打出好的......