举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > java中数字类型 Java 数字格式类

java中数字类型 Java 数字格式类

2023-03-20 03:20 Java教程

java中数字类型 Java 数字格式类

java中数字类型

Java中的数字类型是指用于表示数字的类型,它们可以用来表示整数、浮点数、布尔值或其他特殊值。Java中的数字类型可以分为两大类:原始数据类型(primitive data types)和引用数据类型(reference data types)。

原始数据类型是Java中最常用的一种数据类型,它们包括byte、short、int、long、float、double、boolean 和 char。这些原始数据类型都有自己的特性,例如byte可以表示8位二进制整数,而float可以表示32位单精度浮点数。

引用数据类型是一个特殊的对象,它可以引用其他对象。在Java中,最常见的引用数据类型是String。String 用于表达文本信息,例如“Hello World”或“Goodbye World”。此外还有其他一些引用数据类型,例如BigInteger 和 BigDecimal 等。

// 声明一个 byte 的变量 
byte myByte = 0; 
// 声明一个 float 的变量 
float myFloat = 0.0f; 
// 声明一个 String 的变量 
String myString = "Hello World"; 

Java 数字格式类

Java格式 - Java数字格式类


以下两个类可用于格式化和解析数字:

  • java.text.NumberFormat
  • java.text.DecimalFormat

NumberFormat 类可以格式化一个数字特定地区的预定义格式。

DecimalFormat 类可以格式化数字以特定区域设置的自定义格式。

NumberFormat类的 getXXXInstance()方法返回格式化程序对象的实例。

XXX可以由数字,货币,整数或百分比替换,或只是getInstance()。这些方法都是重载的。

如果你调用它们没有参数,它们返回一个格式化对象默认语言环境。

使用number参数调用format()方法以将格式化的数字作为字符串。

import java.text.NumberFormat;

public class Main {
  public static void main(String[] args) {
    NumberFormat formatter;
    // Get number formatter for default locale
    formatter = NumberFormat.getInstance();
    System.out.println(formatter.format(12312.123123));
  }
}

上面的代码生成以下结果。


例子

下面的代码说明了如何以默认格式为当前语言环境,法语语言环境和德语语言环境格式化数字。

import java.text.NumberFormat;
import java.util.Locale;

public class Main {
  public static void main(String[] args) {
    double value = 123456789.9876543;

    // Default locale
    printFormatted(Locale.getDefault(), value);

    // Indian locale
    Locale indianLocale = new Locale("en", "IN");
    printFormatted(indianLocale, value);
  }

  public static void printFormatted(Locale locale, double value) {
    // Get number and currency formatter
    NumberFormat nf = NumberFormat.getInstance(locale);
    NumberFormat cf = NumberFormat.getCurrencyInstance(locale);

    System.out.println("Format value: " + value + "  for locale: " + locale);
    System.out.println("Number: " + nf.format(value));
    System.out.println("Currency: " + cf.format(value));
  }
}

上面的代码生成以下结果。

DecimalFormat类

要执行更高级的格式化,我们可以使用DecimalFormat类。

DecimalFormat类允许我们提供我们自己的格式模式。 的下表显示模式及其用法。

符号位置含义
0Number代表数字
#Number数字,零显示为不存在
.Number小数分隔符或货币小数分隔符
-Number减号
,Number分组分隔符
ENumber以科学记数法分隔尾数和指数。
;子模式边界分隔正和负子模式
%字首或字尾乘以100并以百分比显示
u2030字首或字尾乘以1000,并显示为每毫米值

一旦我们创建了DecimalFormat类的对象,就可以改变格式模式使用其 applyPattern()方法。

import java.text.DecimalFormat;

public class Main {
  private static DecimalFormat formatter = new DecimalFormat();

  public static void main(String[] args) {
    formatNumber("##.##", 12.345);
    formatNumber("##.##", 12.345);
    formatNumber("0000.0000", 12.345);
    formatNumber("#.##", -12.345);

    // Positive and negative number format 
    formatNumber("#.##;(#.##)", -12.735);
  }

  public static void formatNumber(String pattern, double value) {
    // Apply the pattern formatter.applyPattern ( pattern );

    String formattedNumber = formatter.format(value);

    System.out.println("Number:" + value + ", Pattern:" + pattern
        + ", Formatted Number:" + formattedNumber);
  }
}

上面的代码生成以下结果。

解析

我们还可以使用 parse()方法将字符串解析为数字。 parse()方法返回 java.lang.Number 类的对象。

我们可以使用 java.lang.Number 类中的xxxValue()方法来获取原始值,其中xxx可以是byte,double,float,int,long和short。

import java.text.DecimalFormat;
import java.text.ParsePosition;

public class Main {
  private static DecimalFormat formatter = new DecimalFormat();

  public static void main(String[] args) {
    // Parse a string to decimal number
    String str = "qq1,234.567";
    String pattern = "#,###.###";
    formatter.applyPattern(pattern);

    // Create a ParsePosition object to specify the first digit of
    // number in the string. It is 1 in "qq1,234.567"
    // with the index 2.
    ParsePosition pp = new ParsePosition(2);

    Number numberObject = formatter.parse(str, pp);

    double value = numberObject.doubleValue();
    System.out.println("Parsed Value  is " + value);
  }

}

上面的代码生成以下结果。

阅读全文
以上是名动网为你收集整理的java中数字类型 Java 数字格式类全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们