【Java Cookbook 1】数值的处理
2021/6/7 22:35:31
本文主要是介绍【Java Cookbook 1】数值的处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
I. Introduction
II. Content
Trick 1. 检查字符串是否可以有效地转化为数字
Trick 2. 将一个较大的数据类型存储在较小的类型中
I. Introduction
对任何程序来说,数据都是最基础的东西。无论你是想做销售系统,或者财务系统,乃至于学校成天要你做的图书管理系统(比如武汉理工),没有数据的支持,都是镜花水月。
Java拥有几种常见的数据类型用来表示整数,浮点数,布尔值以及字符等。注意,Java为了跨平台兼容已经对数据类型的大小做出详细的规定,而不是像C语言那样任由编译器来决定。
更正:boolean官方文档没有明确定义,依赖于JVM具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素。
[来源: JavaGuide/Java基础知识.md at master · Snailclimb/JavaGuide (github.com)]
类型 | 包装器 | 位数 | 内容 | 默认值 |
---|---|---|---|---|
byte | Byte | 8 | 带符号整数 | 0 |
int | Integer | 32 | 带符号整数 | 0 |
short | Short | 16 | 带符号整数 | 0 |
long | Long | 64 | 带符号整数 | 0L |
float | Float | 32 | IEEE-754 浮点数 | 0f |
double | Double | 64 | IEEE-754 浮点数 | 0d |
char | Char | 16 | 无符号整数 | 'u0000' |
boolean | Boolean | 1 | 布尔值 | false |
II. Content
Trick 1. 检查字符串是否可以有效地转化为数字
你需要确定字符串 s 是否可以转化为数字 x,如果可以,进行转化。
解决方法:
用上正确的包装类以及异常处理机制。
代码:
public static void main(String[] argv) { String aNumber = argv[0]; // not argv[1] double result; try { result = Double.parseDouble(aNumber); System.out.println("Number is " + result); } catch (NumberFormatException exc) { System.out.println("Invalid number " + aNumber); return; } }
补充:
如果你的数字类型比较特殊,可以用正则表达式解决。
Trick 2. 将一个较大的数据类型存储在较小的类型中
你希望将一个 long 的数据存储在 short 或者 int 。
解决方法:
强制类型转化。
代码:
long old_one = 150; short new_one = (short) old_one;
补充:
// 错误写法 float f = 3.0; // 等价于 double tmp = 3.0; float f = tmp; // 正确写法 float f = 3.0f; // or just 3f double f = 3.0; float f = (float)3.0; float f = 3; // int 转化为short, char, byte也会有这种错误。
Trick 3. 确保浮点数运算的准确性
浮动数的运算其实是有一定误差的,这里有一个很经典的例子
double x1=1.0-0.9; double x2=0.9-0.8; System.out.println(x1==x2); // false
这篇关于【Java Cookbook 1】数值的处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)