java的decimal

本文主要详细介绍了十进制格式在Java中的用法,具有一定的参考价值。感兴趣的朋友可以参考一下。

我们经常要对数字进行格式化,比如取2位小数,这是最常见的。提供Java DecimalFormat类来帮助你尽快格式化数字。下面是一个例子:

import Java . text . decimal format;

公共类TestNumberFormat{

公共静态void main(String[]args){

doublepi=3.1415927//pi

//取一位整数

system . out . println(newDecimalFormat(' 0 ')。格式(pi));//3

//取一个整数和两位小数

system . out . println(newDecimalFormat(' 0.00 ')。格式(pi));//3.14

//取两个整数,三个小数,整数不足的部分用0填充。

System.out.println(新的DecimalFormat('00.000 ')。格式(pi));//03.142

//取所有整数部分

system . out . println(newDecimalFormat(' # ')。格式(pi));//3

//按百分比计数,取两位小数。

System.out.println(新的DecimalFormat('#。##%').格式(pi));//314.16%

longc=299792458//光速

//显示为科学计数法,小数点后五位。

system . out . println(newDecimalFormat(' #。# # # # # E0’)。格式(c));//2.99792E8

//显示为两位数整数的科学计数方法,小数点后四位。

system . out . println(newDecimalFormat(' 00。# # # # E0’)。格式(c));//29.9792E7

//每三位数用逗号隔开。

system . out . println(newDecimalFormat(',### ')。格式(c));//299,792,458

//在文本中嵌入格式

System.out.println(新的十进制格式('光速是# # #米每秒。').格式(c));

}

}

DecimalFormat类主要依靠#和0占位符来指定数字的长度。0表示如果位数不足,就用0填充,#表示只要有可能就把数字拉到这个位置。上面的例子包含了几乎所有的基本用法。如果想了解更多,请参考DecimalFormat类的文档。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

原文地址:http://www.ccttoo.com/html/1711.html

本文来自网络,不代表菜鸟教程之家立场,转载请注明出处。

### Java 中 BigDecimal 的用法及示例 #### 设置负数规模 当使用 `BigDecimal` 类设置比例尺为负数值时,这表示允许舍入到左侧的小数位。例如: ```java BigDecimal bd = new BigDecimal("123.456"); bd = bd.setScale(-1, RoundingMode.HALF_UP); System.out.println(bd); // 输出 "120" ``` 此操作会将最接近指定精度的整十倍数作为结果返回[^1]。 #### 创建 BigDecimal 对象 可以通过多种方式创建 `BigDecimal` 实例,常用的方法是从字符串或基本数据类型转换而来: ```java // 使用 String 构造函数初始化 BigDecimal numFromString = new BigDecimal("987654321"); // 通过 int 值构建,默认无小数部分 BigDecimal numFromInt = new BigDecimal(123); // 利用 double 转换成 BigDecimal 需要谨慎处理二进制浮点误差 BigDecimal numFromDouble = new BigDecimal(Double.toString(0.1)); ``` #### 执行算术运算 支持加减乘除四则混合计算,并能控制中间过程中的精确度损失情况: ```java BigDecimal firstNumber = new BigDecimal("10.5"); BigDecimal secondNumber = new BigDecimal("2.5"); // 加法 BigDecimal sumResult = firstNumber.add(secondNumber).setScale(2,RoundingMode.CEILING); System.out.println(sumResult); // 减法 BigDecimal subResult = firstNumber.subtract(secondNumber).setScale(2,RoundingMode.FLOOR); System.out.println(subResult); // 乘法 BigDecimal mulResult = firstNumber.multiply(secondNumber).setScale(2,RoundingMode.UNNECESSARY); System.out.println(mulResult); // 除法需要注意分母不能为零以及可能产生的无限循环小数问题 try { BigDecimal divResult = firstNumber.divide(secondNumber, MathContext.DECIMAL32); System.out.println(divResult); } catch (ArithmeticException e){ System.err.println(e.getMessage()); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值