33Java大整数高精度1
需积分: 0 20 浏览量
更新于2022-08-08
收藏 30KB DOCX 举报
Java 大整数高精度处理
Java 语言中对大整数和高精度的处理是非常重要的,以下是相关知识点的总结:
一、基本定义
在 Java 中,我们可以使用 Scanner 类来读取输入,例如:
```java
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner cin1 = new Scanner(System.in);
Scanner cin2 = new Scanner(new BufferedInputStream(System.in));
}
```
在上面的代码中,我们使用了两个 Scanner 对象,cin1 和 cin2,其中 cin2 使用了 BufferedInputStream 来读取输入,使得输入速度更快。
二、输入具体数据
Java 中有多种方式来输入数据,例如:
* 输入一个整数:`int n = cin.nextInt();`
* 输入一个字符串:`String s = cin.next();`
* 输入一个浮点数:`double f = cin.nextDouble();`
* 读入一整行:`String s = cin.nextLine();`
我们可以使用 `cin.hasNext()`、`cin.hasNextInt()`、`cin.hasNextDouble()` 等方法来判断是否有下一个输入。
三、基本输出
Java 中有多种方式来输出数据,例如:
* 使用 `System.out.print()` 输出字符串
* 使用 `System.out.println()` 输出字符串并换行
* 使用 `System.out.printf()` 输出格式化字符串
例如:
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(new BufferedInputStream(System.in));
int a;
double b;
a = 12345;
b = 1.234567;
System.out.println(a + " " + b);
System.out.printf("%d %10.5f\n", a, b);
}
}
```
四、要求具体精度的输出
在 Java 中,我们可以使用 `System.out.printf()` 来输出格式化字符串,例如:
```java
import java.util.*;
import java.text.*;
public class Main {
public static void main(String[] args) {
DecimalFormat f = new DecimalFormat("#.00#");
DecimalFormat g = new DecimalFormat("0.000");
double a = 123.456789, b = 0.123456;
System.out.println(f.format(a));
System.out.println(f.format(b));
System.out.println(g.format(a));
System.out.println(g.format(b));
}
}
```
五、字符串的处理
Java 中的字符串是不可修改的,要修改只能转换为字符数组,例如:
```java
String st = "abcdefg";
char[] ch;
ch = st.toCharArray(); // 字符串转换为字符数组
```
六、高精度问题
Java 中有两个类 `BigDecimal`(表示浮点数)和 `BigInteger`(表示整数),使用这两个类的时候需要加上 `import java.math.*;`,例如:
```java
import java.math.*;
public class Main {
public static void main(String[] args) {
BigInteger a = new BigInteger("12345678901234567890");
BigInteger b = new BigInteger("98765432109876543210");
BigInteger c = a.add(b); // 大数加法
}
}
```
这些知识点对 Java 开发者来说非常重要,掌握这些知识点可以帮助开发者更好地处理大整数和高精度问题。