Java 中的货币格式

Rashmi Patidar 2023年10月12日
  1. 在 Java 中使用逻辑函数转换货币
  2. 在 Java 中使用 NumberFormat 类转换货币
Java 中的货币格式

以下是我们可以在 Java 中将货币转换为所需值的一些方法。

在 Java 中使用逻辑函数转换货币

public class CurrencyConversion {
  public static void main(String[] args) {
    double currency_value = 10.9897;
    float epsilon = 0.004f;
    if (Math.abs(Math.round(currency_value) - currency_value) < epsilon) {
      System.out.printf("%10.0f", currency_value);
    } else {
      System.out.printf("%10.2f", currency_value);
    }
  }
}

在上面的 CurrencyConversion 代码中,有一个变量 currency_value,以十进制格式保存货币值。epsilon 是另一个具有不同值的变量。该值可以是对其差值执行一些逻辑运算的任何浮点数。if 语句逻辑被定义为取舍入数与实际数之差的绝对值。将绝对值与 epsilon 值进行比较。该程序使用函数 Math.abs() 将十进制值的实际差值转换为零或大于零。

根据条件语句的输出,它以 10.0f10.2f 格式打印。给定的两种格式说明符表示,整数部分为 10,这意味着整个字符串包含十个字符。小数部分指定格式直到 2 小数位。

在下面的控制台日志中,它打印了最多 2 个小数位的绝对转换值。

10.99  //10.9897
10	   //10
10	   //10.0008

在第一种情况下,当货币值为 10.9897 时,它会四舍五入为 10.99。此外,当货币值更改为 10 时,输出仍然返回 10,因为输入货币没有任何舍入。当货币值更改为 10.0008 时,金额将四舍五入为 10 值。

在 Java 中使用 NumberFormat 类转换货币

import java.text.NumberFormat;

public class CurrencyConversion {
  public static void main(String[] args) {
    double money = 100.1;
    NumberFormat formatter = NumberFormat.getCurrencyInstance();
    String moneyString = formatter.format(money);
    System.out.println(moneyString);
  }
}

上面的代码块使用调用静态方法 getCurrencyInstance 函数的 NumberFormat 类。该方法在默认语言环境中返回格式的货币格式。它还需要一个 locale 值来指定一个区域。并且货币实例可以是基于定义的区域或区域的 Rupees``Dollar 格式。现在格式化程序实例用于调用格式化方法。format 方法接受一个参数 double money 并返回一个 String 值。当舍入不正确时,该函数可能会抛出 ArithmeticException

上面的代码创建了以下输出。

Rs.100.10

但是当语言环境值不同时,它可能会有所不同。当语言环境值为 Locale.CHINA 时,输出是 。或者当 Locale 为 Locale.CANADA,输出为 $

作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - Java String