您好,我在从文件计算数字时遇到一些问题。
我的输入如下rawData.txt
:
19.95
5
输出是这样的:
49.0
57
我的代码如下所示:
import java.util.Scanner;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.PrintStream;
class ReadAndWrite
{
public static void main(String args[])
throws FileNotFoundException {
Scanner diskScanner = null;
diskScanner = new Scanner(new FileReader("rawData.txt"));
PrintStream diskWriter = new PrintStream("cookedData.txt");
double total;
double unitPrice = diskScanner.findWithinHorizon(".", 0).charAt(0);
System.out.println(unitPrice);
int quantity = diskScanner.findWithinHorizon(".", 0).charAt(0);
System.out.println(quantity);
total = unitPrice * quantity;
diskWriter.println(total);
diskScanner.close();
}
}
最终,cookedData.txt
文件包含数字 2793.0
请帮忙
最佳答案
由于 charAt(0),您仅获取每行的第一个字符,然后将其转换为 double 型(将 char 转换为 double 型!!)
我无法理解你想要做什么,但是使用转换将 char 转换为 double 几乎总是不是你应该做的。
尝试使用 Double.parseDouble 代替。在这里查看:https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#parseDouble(java.lang.String)
关于java - 数字转换为其他数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675168/