【Java】数值操作

文章目录

    • 1.数值数据类型和操作
      • 1.1 数值类型
      • 1.2 从键盘读取数值
      • 1.3 数值操作符
    • 2.数值型字面值
      • 2.1 整形字面值
      • 2.2 浮点型字面值
      • 2.3 科学记数法
    • 示例:显示当前时间
    • 3.增强赋值运算符
    • 4.自增和自减操作符
    • 5.数值类型转换

1.数值数据类型和操作

1.1 数值类型

类型名范围储存空间
byte-27(-128)~27-1(127)8位带符号数
short-215(-32 768)~ 215-1(1(32 767)16位带符号数
int-231(-2 147483 648)~231-1(2 147 483 647)32位带符号数
long-263~263-164位带符号数
float负数范围:-3.4028235E+38~-1.4E-45
正数范围:1.4E-45~3.4028235E+38
32位,标准IEEE 754
double负数范围:-1.7976931348623157E+308-4.9E-324
正数范围:4.9E-324~1.7976931348623157E+308
64位,标准JEEE 754

1.2 从键盘读取数值

Scanner input = new Scanner(System.in);
byte bytevalue = input.nextByte();

类似的,还有nextShort、nextInt、nextLong、nextFloat、nextDouble

1.3 数值操作符

名称符号
+
-
*
除以/
求余%

当除法的操作数都是整数时,除法的结果就是整数,小数部分被舍去(即整除以)。例如:5/2的结果是2而不是2.5,而-5/2的结果是-2而不是-2.5。
操作符%通常用在正整数上,实际上,它也可用于负整数和浮点值。只有当被除数是负数时,余数才是负的。

2.数值型字面值

2.1 整形字面值

  • 整型字面值默认是int型的
  • 表示一个1ong型的整型字面值,需要在其后加字母L或l。推荐使用L,因为l(L的小写)很容易与1(数字1)混淆。
  • 默认情况下,整型字面值是一个十进制整数。要表示一个二进制整数字面值,在数字前使用 0b或者 0B。要表示一个八进制整数字面值,在数字前使用0。而要表示一个十六进制整数字面值,在数字前使用0x或0X。
  • 为了提高可读性,Java 允许在一个数值型字面值的两个数字间使用下划线。下划线必须置于两个数字之间。

2.2 浮点型字面值

  • 浮点型字面值带小数点,默认情况下是doub1e型
  • 可以通过在数字后面加字母f或F表示该数为f1oat 型字面值,也可以在数字后面加d或D表示该数为double型字面值

2.3 科学记数法

浮点型字面值也可以用ax10b形式的科学记数法表示。1.23456x102可以写成1.23456E2或者1.23456E+2,而1.23456x10-2等于1.23456E-2。E(或e)表示指数,既可以用大写字母也可以用小写字母。

示例:显示当前时间

public class ShowCurrentTime{public static void main(String[] args) {//System类中的方法currentTimeMi11is返回从GMT1970年1月1日00:00:00开始到当前时刻的毫秒数long t = System.currentTimeMillis();//总秒数long totalSeconds = t/1000;//秒数long seconds = totalSeconds%60;//总分钟数long totalMinutes = totalSeconds/60;//分钟数long minutes = totalMinutes%60;//总小时数long totalHours = totalMinutes/60;//小时数long hours = totalHours%24;}
}

3.增强赋值运算符

操作符名称
+=加法赋值操作符
-=减法赋值操作符
*=乘法赋值操作符
/=除法赋值操作符
%=求余赋值操作符
增强赋值操作符在表达式中所有其他操作符计算完成后执行。例如:
x /= 4 + 5.5 * 1.5;
//等同于
x = x / (4 + 5.5 * 1.5);

4.自增和自减操作符

示例名称意义
++var前置自增将 var 加 1,在语句中使用新的 var 值
var++后置自增将 var 加 1,但是在语句中使用原来的 var 值
–var前置自减将 var 减 1,在语句中使用新的 var 值
var–后置自减将 var 减1,但是在语句中使用原来的 var值

5.数值类型转换

类型转换是将一种数据类型的值转换成另一种数据类型的值的操作。将范围较小的类型转换为范围较大的类型称为扩展类型(widening a type),而将范围较大的类型转换为范围较小的类型称为缩小类型(narrowing a type)。Java将自动扩展一个类型,但是缩小类型必须显式完成。 比如:3/4.5等同于3.0/4.5。
显式完成的语法:

System.out.printin((int)1.7); // 1
System.out.printin((double)1/2); // 1首先被转换为1.0,所以得0.5
System.out.print1n(1/2); // 0

如果要将一个值赋给一个范围较小的类型的变量,例如将 double型的值赋给 int型变量,就必须进行类型转换。如果在这种情况下没有使用类型转换,就会出现编译错误。

double a = 1.5;
int b = (int)a;
System.out.printin(a); // 1.5
System.out.printin(b); // 1

Java中,x1op=x2形式的增强赋值表达式实现为x1=(T)(x1 op x2),这里T是x1的类型。

int sum = 1;
sum += 2.5;
// 等价于下式:
sum = (int)(sum + 2.5)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文分享|NeurIPS2022‘华盛顿大学|俄罗斯套娃表示学习(OpenAI使用的文本表示学习技术)

论文题目:Matryoshka Representation Learning 来源:NeurIPS2022/华盛顿大学谷歌 方向:表示学习 开源地址:https://github.com/RAIVNLab/MRL 摘要 学习表征对于现代机器学习很重要,广泛用于很多下游任务。大多数情…

java配置nginx网络安全,防止国外ip访问,自动添加黑名单,需手动重新加载nginx

通过访问日志自动添加国外ip黑名单 创建一个类,自己添加一个main启动类即可测试 import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.json.JSONArray; import org.json.JSONObject; import org.sp…

【学习笔记】Redis学习笔记——第10章 RDB持久化

第10章 RDB持久化 RDB是用来做持久化的二进制压缩文件 10.1 RDB文件的创建与载入 1>SAVE命令阻塞主线程创建。 2>EGSAVE开子线程创建。 3>优先使用AOF进行初始化数据库,否则,使用RDB文件初始化,因为AOF文件的写入更加频繁&#x…

面试经验之谈

优质博文:IT-BLOG-CN ​通常面试官会把每一轮面试分为三个环节:① 行为面试 ② 技术面试 ③ 应聘者提问 行为面试环节 面试开始的5~10分钟通常是行为面试的时间,面试官会参照简历和你的自我介绍了解应聘者的过往经验和项目经历。由于面试官…

C++catch (...)陈述

catch (...)陈述 例外处理可以有多个catch&#xff0c;如果catch后的小括弧里面放...&#xff0c;就表示不限型态种类的任何例外。 举例如下 #include <iostream>int main() {int i -1;try {if (i > 0) {throw 0;}throw 2.0;}catch (const int e) {std::cout <…

nodejs模板引擎(一)

在 Node.js 中使用模板引擎可以让您更轻松地生成动态 HTML 页面&#xff0c;通过将静态模板与动态数据结合&#xff0c;您可以创建可维护且易于扩展的 Web 应用程序。以下是一个使用 Express 框架和 EJS 模板引擎的基本示例&#xff1a; 安装必要的依赖&#xff1a; 首先&#…

分享浏览器被hao123网页劫持,去除劫持的方式

昨天看python相关的自动化工作代码时&#xff0c;发现谷歌浏览器被hao123劫持了&#xff0c;把那些程序删了也不管用 方法1&#xff1a;删除hao123注册表&#xff0c;这个方式不太好用&#xff0c;会找不到注册表 方法2&#xff1a;看浏览器快捷方式的属性页面&#xff0c;一…

【C++】入门基础(命名空间、缺省参数、函数重载)

目录 一.命名空间&#xff1a;namespace 1.namespace的价值 2.namespace的定义 3.namespace的使用方法 3.1 域解析运算符:: 3.2 using展开 3.3 using域解析运算符 二.输入输出 三.缺省参数 四.函数重载 1.参数类型不同 2.参数个数不同 3.参数顺序不同 一.命名空间&…

APP专项测试之网络测试

背景 当前app网络环境比较复杂&#xff0c;越来越多的公共wifi&#xff0c;网络制式有2G、3G、4G网络&#xff0c;会对用户使用app造成一定影响&#xff1b;当前app使用场景多变&#xff0c;如进地铁、上公交、进电梯等&#xff0c;使得弱网测试显得尤为重要&#xff1b; 网络正…

链路追踪系列-02.演示zipkin

当本机启动docker es zipkinServer之后&#xff1a; 启动3个项目&#xff1a;先eureka-server&#xff0c;再 PaymentMain8001,… 浏览器打开&#xff1a;http://localhost:9001/consumer/payment/zipkin consumer代码 &#xff1a; provider: 此时查询es:

uboot如何选择启动设备

cpu选择启动设备有两种方式 1、通过bootpin选择某个设备 比如从SD卡启动、EMMC、USB启动。 2、通过bootpin选择某个顺序 比如&#xff1a; SD、SPI、NANDSPI、NAND、SD

3-2 多层感知机的从零开始实现

import torch from torch import nn from d2l import torch as d2lbatch_size 256 # 批量大小为256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size) # load进来训练集和测试集初始化模型参数 回想一下&#xff0c;Fashion-MNIST中的每个图像由 28 28 784…

学习C++,应该循序渐进的看哪些书?

学习C是一个循序渐进的过程&#xff0c;需要根据自己的基础和目标来选择合适的书籍。以下是一个推荐的学习路径&#xff0c;包含了从入门到进阶的书籍&#xff1a; 1. 入门阶段 《C Primer Plus 第6版 中文版》 推荐理由&#xff1a;这本书同样适合C零基础的学习者&#xff0…

python运行环境在新旧电脑间迁移

目录 方法1. 直接复制虚拟环境文件夹&#xff1a;方法2. 导出和导入依赖项&#xff1a;方法3. 用 Docker 镜像&#xff1a; 当您需要在不同电脑之间迁移 Python 运行环境时&#xff0c;可以采用以下方法之一&#xff1a; 方法1. 直接复制虚拟环境文件夹&#xff1a; 将整个虚…

[CISCN2018]2ex

啊!好恶心的mips寄存器 好多IDA都查不到,这寄存器~! fuck! 但是这种寄存器一般的题都不难 这道题就是 我用平常的方法,没找到 左边函数一个一个点 看见这里0X3F base64 密文呢? 我giao 外面的txt文件里面 脚本 import base64 import string# 定义你的自定义字符集 st…

PHP语言教程与实战案例

PHP是一种广泛使用的开源脚本语言&#xff0c;尤其适用于Web开发并可嵌入HTML中。它的语法吸收了C语言、Java和Perl的特点&#xff0c;易于学习&#xff0c;功能强大。本文将带领你从基础语法入手&#xff0c;通过一系列实用案例&#xff0c;逐步掌握PHP的核心概念和技巧。 项…

使用JDBC实现事务管理与隔离级别设置

使用JDBC实现事务管理与隔离级别设置 在Java开发中&#xff0c;JDBC&#xff08;Java Database Connectivity&#xff09;是常用的数据库连接方式。在处理数据库操作时&#xff0c;事务管理和隔离级别设置是保证数据一致性和可靠性的关键。本篇博客将通过示例代码&#xff0c;…

并发编程-11线程池详解

一 线程池基础和使用 1.1 什么是线程池 “线程池”&#xff0c;顾名思义就是一个线程缓存&#xff0c;线程是稀缺资源&#xff0c;如果被无限制的创建&#xff0c;不仅会消耗系统资源&#xff0c;还会降低系统的稳定性&#xff0c;因此Java中提供线程池对线程进行统一分配、调优…

聊点基础---Java和.NET开发技术异同全方位分析

1. C#语言基础 1.1 C#语法概览 欢迎来到C#的世界&#xff01;对于刚从Java转过来的开发者来说&#xff0c;你会发现C#和Java有很多相似之处&#xff0c;但C#也有其独特的魅力和强大之处。让我们一起来探索C#的基本语法&#xff0c;并比较一下与Java的异同。 程序结构 C#程序…

美团收银Android一面凉经(2024)

美团收银Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《美团收银Android一面凉经(2024)》。 应聘岗位: 美团餐饮PaaS平台Android开发工程师…