Java 计算金钱的方法
时间: 2024-06-12 17:04:18 浏览: 11
Java 中有多种计算金钱的方法,以下是其中的一些:
1. BigDecimal 类:该类提供了高精度的十进制计算,可以避免浮点数计算时的精度问题。可以使用 BigDecimal 的 add、subtract、multiply、divide 等方法进行加减乘除操作。需要注意的是,BigDecimal 类的构造方法参数必须为字符串类型。
示例代码:
```java
BigDecimal money1 = new BigDecimal("10.5");
BigDecimal money2 = new BigDecimal("5.2");
BigDecimal result = money1.add(money2);
System.out.println(result); // 输出 15.7
```
2. DecimalFormat 类:该类可以将数字格式化为指定格式的字符串。可以使用 setMinimumFractionDigits、setMaximumFractionDigits 等方法设置小数位数,使用 setRoundingMode 方法设置舍入模式。
示例代码:
```java
double money = 10.5;
DecimalFormat df = new DecimalFormat("#.00");
String result = df.format(money);
System.out.println(result); // 输出 10.50
```
3. Math 类:该类提供了常用的数学函数,例如 round、floor、ceil 等。需要注意的是,这些函数的参数和返回值都是 double 类型,因此可能存在精度问题。
示例代码:
```java
double money = 10.5;
double result = Math.round(money * 100) / 100.0;
System.out.println(result); // 输出 10.5
```
4. Currency 类:该类表示一种货币,可以使用 getInstance 方法获取指定国家的货币实例,使用 getSymbol 方法获取货币符号,使用 getDisplayName 方法获取货币名称。
示例代码:
```java
Currency cny = Currency.getInstance("CNY");
String symbol = cny.getSymbol();
String name = cny.getDisplayName();
System.out.println(symbol); // 输出 ¥
System.out.println(name); // 输出 人民币
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)