当前位置: 首页 > news >正文

学习日志05 java

1 java里面的类型转换怎么做?int转double为例

在 Java 里,把int转换为double有自动类型转换和强制类型转换两种方式。下面为你详细介绍:

自动类型转换(隐式转换)

由于double的取值范围比int大,Java 能够自动将int类型转换为double类型,无需编写额外的代码。

java

int numInt = 10;
double numDouble = numInt; // 自动转换
System.out.println(numDouble); // 输出:10.0

强制类型转换(显式转换)

虽然在这种场景下强制类型转换并非必需,但你也可以通过它来明确表明要进行类型转换。

java

int numInt = 10;
double numDouble = (double) numInt; // 强制转换(这里其实可以省略)
System.out.println(numDouble); // 输出:10.0

常见应用场景

1. 基本数据类型转换

java

int a = 5;
int b = 2;
double result = a / b; // 输出2.0,因为a/b先进行整数除法
double correctResult = (double) a / b; // 输出2.5,先将a转为double
2. 方法参数传递时的转换

java

public static void printDouble(double value) {System.out.println(value);
}int num = 20;
printDouble(num); // 自动转换为double类型

注意事项

  1. 精度问题int转换为double不会造成精度损失,因为double的精度更高。
  2. 性能方面:类型转换的开销极小,在大多数情况下无需担心性能问题。
  3. 整数除法:若要进行浮点数除法,需先把其中一个操作数转换为double类型。

2 保留4位小数

// 使用printf进行格式化输出,保留4位小数System.out.printf("%.4f", sum);

 3 Integer.parseInt() 

Integer.parseInt() 是 Java 中用于将字符串转换为整数的静态方法。当你从用户输入(如 Scanner 读取的内容)获取数字时,输入通常是字符串类型,但程序可能需要将其作为整数进行计算,这时就需要使用该方法进行类型转换。

基本用法

java

int num = Integer.parseInt("123");  // 将字符串 "123" 转换为整数 123

参数要求:

  • 输入的字符串必须是纯数字格式(可以包含正负号),否则会抛出 NumberFormatException
  • 例如:"123""-456" 是合法的,但 "123a""1,000"" 123 "(含空格)会报错。

常见场景

1. 从用户输入中读取整数

java

Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();  // 用户输入 "15"
int age = Integer.parseInt(input);  // 转换为整数 15
2. 处理字符串数组中的数字

java

String[] parts = {"tom", "15", "male"};
int age = Integer.parseInt(parts[1]);  // 将 "15" 转换为 15

异常处理

如果输入的字符串格式不合法,会抛出 NumberFormatException。建议使用 try-catch 捕获异常:

java

try {int num = Integer.parseInt("abc");  // 抛出异常
} catch (NumberFormatException e) {System.out.println("输入格式错误:" + e.getMessage());
}

拓展用法

1. 处理带空格的字符串

java

String str = "  123  ";
int num = Integer.parseInt(str.trim());  // 先使用 trim() 去除空格
2. 转换不同进制的字符串

可以指定第二个参数表示进制(如 2 进制、16 进制):

java

int binary = Integer.parseInt("101", 2);  // 二进制 "101" → 十进制 5
int hex = Integer.parseInt("FF", 16);     // 十六进制 "FF" → 十进制 255

注意事项

  1. 范围限制:转换后的整数必须在 int 的取值范围(-2,147,483,648 到 2,147,483,647)内,否则会抛出异常。

    java

    // 超出 int 范围,报错
    int num = Integer.parseInt("2147483648");  
    
  2. 浮点数字符串:不能直接转换,需先处理小数点。

    java

    // 错误:非纯数字格式
    int num = Integer.parseInt("3.14");  // 正确做法:先转换为 double,再取整
    double d = Double.parseDouble("3.14");
    int num = (int) d;  // 结果为 3
    
http://www.xdnf.cn/news/435925.html

相关文章:

  • Cookie、 Local Storage、 Session Storage三种客户端存储方式
  • vshell渗透测试工具介绍
  • 从零实现一个高并发内存池 - 1
  • WHAT - 《成为技术领导者》思考题(第八章)
  • Yarn-Tool接口定义
  • python高级特性二
  • Java 反射
  • 久坐办公自动提醒休息的工具
  • QLineEdit增加点击回显功能
  • PH热榜 | 2025-05-13
  • arctanx 导数 泰勒展开式证明
  • 机器学习2
  • 鹅厂面试数学题
  • 典籍指数问答模块回答格式修改
  • java中的Optional
  • 如何优化 Linux 服务器的磁盘 I/O 性能
  • 【Nova UI】十五、打造组件库之滚动条组件(上):滚动条组件的起步与进阶
  • 【学习笔记】Shell编程---流程控制语句
  • PNG图片转icon图标Python脚本(简易版) - 随笔
  • 动态规划问题 -- 多状态模型(打家劫舍)
  • Java的进制转换
  • 大模型驱动的写实数字人实时对话:创新与实践
  • 谈谈各种IO模型
  • 算法·KMP
  • 1688 API 接口使用限制
  • 【C++】多线程和多进程
  • Java Spring 事件驱动机制
  • 中医诊所药房开处方调剂库存管理h5/pc开源版开发
  • 提供全球86国/地区进出口税费,46国/地区监管条件,53国/地区税费计算
  • 第二十三天打卡