Java 打印支持兩種類型的數(shù)字格式:
整數(shù)格式化格式化整數(shù)。
它可以格式化byte, Byte, short, Short, int, Integer, long, Long和BigInteger的值。
以下列表說明了格式字符。
d
o
x
或大寫變量X
用于整數(shù)格式化的格式說明符的一般語法如下:
%<argument_index$><flags><width><conversion>
格式說明符的精度不適用于整數(shù)格式化。
下面的代碼演示了使用帶有各種標(biāo)志的“d"轉(zhuǎn)換來格式化整數(shù):
public class Main { public static void main(String[] args) { System.out.printf(""%d" %n", 1234); System.out.printf(""%6d" %n", 1234); System.out.printf(""%-6d" %n", 1234); System.out.printf(""%06d" %n", 1234); System.out.printf(""%(d" %n", 1234); System.out.printf(""%(d" %n", -1234); System.out.printf(""% d" %n", 1234); System.out.printf(""% d" %n", -1234); System.out.printf(""%+d" %n", 1234); System.out.printf(""%+d" %n", -1234); } }
上面的代碼生成以下結(jié)果。
當(dāng) o
和 x
與byte, Byte, short, Short, int, Integer, long, 和 Long 數(shù)據(jù)類型的負(fù)參數(shù)一起使用時(shí),參數(shù)值首先通過向其加上數(shù)字2N轉(zhuǎn)換為無符號(hào)數(shù), 是值的位數(shù)。 轉(zhuǎn)換不會(huì)轉(zhuǎn)換負(fù)BigInteger參數(shù)。
public class Main { public static void main(String[] args) { byte b1 = 1; byte b2 = -2; System.out.printf("%o\n", b1); System.out.printf("%o", b2); } }
以下代碼段顯示了int和BigInteger的“o"和“x"轉(zhuǎn)換的更多示例參數(shù)類型:
import java.math.BigInteger; public class Main { public static void main(String[] args) { System.out.printf("%o %n", 1234); System.out.printf("%o %n", -1234); System.out.printf("%o %n", new BigInteger("1234")); System.out.printf("%o %n", new BigInteger("-1234")); System.out.printf("%x %n", 1234); System.out.printf("%x %n", -1234); System.out.printf("%x %n", new BigInteger("1234")); System.out.printf("%x %n", new BigInteger("-1234")); System.out.printf("%#o %n", 1234); System.out.printf("%#x %n", 1234); System.out.printf("%#o %n", new BigInteger("1234")); System.out.printf("%#x %n", new BigInteger("1234")); } }
上面的代碼生成以下結(jié)果。
浮點(diǎn)數(shù)字格式處理整數(shù)部分和數(shù)字的分?jǐn)?shù)部分。
浮點(diǎn)數(shù)格式化可應(yīng)用于float,F(xiàn)loat,double,Double和BigDecimal數(shù)據(jù)類型的格式值。
以下列表包含用于格式化浮點(diǎn)數(shù)的轉(zhuǎn)換。
e
和大寫變量E
g
和大寫變量G
f
a
和大寫變量A
浮點(diǎn)數(shù)格式化的一般語法是
%<argument_index$><flags><width><.precision><conversion>
精度具有不同的含義取決于轉(zhuǎn)換字符。
以下代碼段顯示了如何使用默認(rèn)精度(6為格式)格式化浮點(diǎn)數(shù):
public class Main { public static void main(String[] args) { System.out.printf("%e %n", 10.2); System.out.printf("%f %n", 10.2); System.out.printf("%g %n", 10.2); System.out.printf("%e %n", 0.000001234); System.out.printf("%f %n", 0.000001234); System.out.printf("%g %n", 0.000001234); System.out.printf("%a %n", 0.000001234); } }
上面的代碼生成以下結(jié)果。
以下代碼顯示了在浮點(diǎn)數(shù)格式中使用width和precision的影響:
public class Main { public static void main(String[] args) { System.out.printf("%.2e %n", 123456.789); System.out.printf("%.2f %n", 123456.789); System.out.printf("%.2g %n", 123456.789); System.out.printf(""%8.2e" %n", 123456.789); System.out.printf(""%8.2f" %n", 123456.789); System.out.printf(""%8.2g" %n", 123456.789); System.out.printf(""%10.2e" %n", 123456.789); System.out.printf(""%10.2f" %n", 123456.789); System.out.printf(""%10.2g" %n", 123456.789); System.out.printf(""%-10.2e" %n", 123456.789); System.out.printf(""%-10.2f" %n", 123456.789); System.out.printf(""%-10.2g" %n", 123456.789); System.out.printf(""%010.2e" %n", 123456.789); System.out.printf(""%010.2f" %n", 123456.789); System.out.printf(""%010.2g" %n", 123456.789); } }
上面的代碼生成以下結(jié)果。
如果浮點(diǎn)轉(zhuǎn)換的參數(shù)值為NaN或Infinity,則輸出分別包含字符串“NaN”和“Infinity”。
public class Main { public static void main(String[] args) { System.out.printf("%.2e %n", Double.NaN); System.out.printf("%.2f %n", Double.POSITIVE_INFINITY); System.out.printf("%.2g %n", Double.NEGATIVE_INFINITY); System.out.printf("%(f %n", Double.POSITIVE_INFINITY); System.out.printf("%(f %n", Double.NEGATIVE_INFINITY); } }
上面的代碼生成以下結(jié)果。
更多建議: