【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)]

常见数据类型
类型包装器位数内容默认值
byteByte8带符号整数0
intInteger32带符号整数0
shortShort16带符号整数0
longLong64带符号整数0L
floatFloat32IEEE-754 浮点数0f
doubleDouble64IEEE-754 浮点数0d
charChar16无符号整数'u0000'
booleanBoolean1布尔值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】数值的处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程