保留2位小数,使用java.text.NumberFormat

[记录]

1.保留小数

保留两位小数,java方式,使用NumberFormat来实现,结果四舍五入

        double sourcePrice = 4940.20;// sourcePrice = 1514940.20
        double reductionPrice = 0.1;
        double price = sourcePrice - reductionPrice;
        NumberFormat nf = NumberFormat.getNumberInstance();

        // notice here

        nf.setMaximumFractionDigits(2);
        System.out.println(nf.format(price));

输出结果:
(结果中看到是一位,其实是默认去掉了最后一位的0。
即4940.10,最终显示4940.1;
如果计算结果是4940.00,那么最终是4940;)

4,940.1

.

1,514,940.1


2.分隔符

注意上面结果的分隔符,千位分隔符,百万分隔符,……),使用时会直接显示出分隔符,如果想去掉,则使用
nf.setGroupingUsed(false);

输出结果则变成了(无分隔符):

4940.1

.

1514940.1


3.其他方法实现

double number = 12345.5593;// 目标值
System.out.println("---计算-保留2位小数-BigDecimal----------四舍五入--------------");

BigDecimal bigDecimal = new BigDecimal(number);
double resNumber = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(resNumber);


System.out.println("---计算-保留2位小数-DecimalFormat--------四舍五入----------------");
DecimalFormat decimalFormat = new DecimalFormat("#.00");
System.out.println(decimalFormat.format(number));

System.out.println("---计算-保留2位小数-String.format--------四舍五入----------------");
System.out.println(String.format("%.2f", number));

输出结果:

12345.55

### 回答1: 可以使用以下的Java代码实现万元转元并保留两位小数的操作: ```java public static double wan2yuan(double wan) { BigDecimal bd = new BigDecimal(wan * 10000); return bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } ``` 其中,wan表示要转换的万元数,返回值为转换后的元数,保留两位小数。 例如,调用 `wan2yuan(5.2)` 方法,得到的返回值为 52000.00。 ### 回答2: 在Java中,可以使用NumberFormat类来实现万元转元并保留两位小数的需求。 首先,我们需要导入NumberFormat类: ``` import java.text.NumberFormat; ``` 然后,我们可以创建一个NumberFormat对象并设置其格式: ``` NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumFractionDigits(2); ``` 接下来,我们可以定义一个方法,该方法接受一个double类型的万元数作为参数,并返回一个转换后的元数,格式为保留两位小数: ```java public static String convertToYuan(double amount) { double yuan = amount * 10000; return nf.format(yuan); } ``` 最后,我们可以在主函数中调用该方法进行万元转元的操作,并打印结果: ```java public static void main(String[] args) { double amount = 5.2; String result = convertToYuan(amount); System.out.println(result); } ``` 以上代码将输出: ``` 52000.00 ``` 这样,我们就成功实现了在Java中将万元转换为元并保留两位小数的需求。 ### 回答3: 要将Java中的万元转换为元并保留两位小数,你可以按照以下步骤进行编程: 1. 声明一个变量来存储万元的值,例如wanyuan = 5.2。 2. 创建一个新的变量,以存储转换后的结果,并将其初始化为wanyuan乘以10000(1万元等于10000元),例如yuan = wanyuan * 10000。 3. 使用DecimalFormat类来格式化yuan的值,以确保结果具有两小数。例如,使用以下代码行创建一个DecimalFormat对象并定义所需的格式: ```java DecimalFormat decimalFormat = new DecimalFormat("0.00"); ``` 这将使得格式化后的数值保留两位小数。 4. 使用DecimalFormatformat方法将yuan的值格式化为指定格式的字符串,例如: ```java String formattedYuan = decimalFormat.format(yuan); ``` 这将返回一个格式为"52000.00"的字符串。 5. 最后,将formattedYuan打印出来,或者根据需要将其用于其他用途。 完整的Java代码示例如下: ```java import java.text.DecimalFormat; public class Main { public static void main(String[] args) { double wanyuan = 5.2; double yuan = wanyuan * 10000; DecimalFormat decimalFormat = new DecimalFormat("0.00"); String formattedYuan = decimalFormat.format(yuan); System.out.println(formattedYuan); } } ``` 运行以上代码将输出结果:"52000.00"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值