数字转换为其他数字

number converting to other number

您好,我在从文件计算数字时遇到了一些问题。

我的输入如下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),然后将其转换为双精度(将 char 转换为双精度!!)

我不明白你想做什么,但使用转换将 char 转换为 double 几乎总是不是你应该做的。

请尝试使用 Double.parseDouble。在这里查看:https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#parseDouble(java.lang.String)

diskScanner.findWithinHorizon(".",0).charAt(0);

表示获取任意字符,因为findWithinHorizo​​n的第一个参数是正则表达式,而“.”表示一个字符。从该字符串中获取第一个字符,即 1。1 的 ascii 值是... 49.