java中double与String转换并相加,相减等运算

doubleString进行相互转换,并执行相加、相减等操作,并可以保留一定的小数位数。

1. doubleString 之间的转换

doubleString
  • 使用 Double.toString(double d) 方法:

    java 复制代码
    double num = 123.456; String str = Double.toString(num);
  • 使用 String.valueOf(double d) 方法:

    java 复制代码
    double num = 123.456; String str = String.valueOf(num);
Stringdouble
  • 使用 Double.parseDouble(String s) 方法:

    java 复制代码
    String str = "123.456"; double num = Double.parseDouble(str);
  • 使用 Double.valueOf(String s) 方法:

    java 复制代码
    String str = "123.456"; double num = Double.valueOf(str);

2. 基本的算术操作

可以直接使用算术运算符进行相加、相减、相乘和相除操作。

java 复制代码
public class ArithmeticOperations { 
public static void main(String[] args) { 
double num1 = 10.5; 
double num2 = 3.2; 
// 相加 double sum = num1 + num2; 
System.out.println("Sum: " + sum); 

// 相减 double difference = num1 - num2; 
System.out.println("Difference: " + difference); 

// 相乘 double product = num1 * num2; 
System.out.println("Product: " + product); 

// 相除 double quotient = num1 / num2; 
System.out.println("Quotient: " + quotient); 

// 取余 double remainder = num1 % num2; 
System.out.println("Remainder: " + remainder); } }

3. 保留小数位数

使用 BigDecimal 类可以精确地保留小数位数。

创建 BigDecimal 对象
  • 通过 double 创建:

    java 复制代码
    BigDecimal bd = new BigDecimal(num);
  • 通过 String 创建:

    java 复制代码
    BigDecimal bd = new BigDecimal("123.456");
设置小数位数
  • 使用 setScale(int newScale, RoundingMode roundingMode) 方法:

    java 复制代码
    BigDecimal bd = new BigDecimal("123.456789"); 
    BigDecimal rounded = bd.setScale(2, RoundingMode.HALF_UP); // 保留两位小数,四舍五入 
    System.out.println("Rounded: " + rounded);

4. 综合代码

java 复制代码
import java.math.BigDecimal; 
import java.math.RoundingMode; 
public class DoubleStringConversionAndArithmetic { 
public static void main(String[] args) { 
// String 转 double 
String str1 = "45.6789"; 
double num1 = Double.parseDouble(str1); 
System.out.println("String to double: " + num1);

 // double 转 String double num2 = 123.456; 
String str2 = Double.toString(num2); 
System.out.println("Double to String: " + str2); 

// 相加并保留两位小数 double sum = num1 + num2; 
BigDecimal bdSum = new BigDecimal(sum).setScale(2, RoundingMode.HALF_UP);
System.out.println("Sum (2 decimal places): " + bdSum); 

// 相减并保留两位小数 double difference = num1 - num2; 
BigDecimal bdDifference = new BigDecimal(difference).setScale(2, RoundingMode.HALF_UP);
System.out.println("Difference (2 decimal places): " + bdDifference); 

// 相乘并保留两位小数 double product = num1 * num2; 
BigDecimal bdProduct = new BigDecimal(product).setScale(2, RoundingMode.HALF_UP); 
System.out.println("Product (2 decimal places): " + bdProduct); 

// 相除并保留两位小数 double quotient = num1 / num2; 
BigDecimal bdQuotient = new BigDecimal(quotient).setScale(2, RoundingMode.HALF_UP); 
System.out.println("Quotient (2 decimal places): " + bdQuotient); } }
相关推荐
飞翔的佩奇1 小时前
【完整源码+数据集+部署教程】表盘指针检测系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·数据集·yolo11·表盘指针检测
larance1 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
在努力的前端小白2 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
搏博2 小时前
基于Python3.10.6与jieba库的中文分词模型接口在Windows Server 2022上的实现与部署教程
windows·python·自然语言处理·flask·中文分词
麦兜*3 小时前
Swift + Xcode 开发环境搭建终极指南
开发语言·ios·swiftui·xcode·swift·苹果vision pro·swift5.6.3
lxmyzzs3 小时前
pyqt5无法显示opencv绘制文本和掩码信息
python·qt·opencv
萧鼎4 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
一叶飘零_sweeeet4 小时前
从繁琐到优雅:Java Lambda 表达式全解析与实战指南
java·lambda·java8
艾伦~耶格尔4 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
yujkss5 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python