gpt4 book ai didi

java - 双显很长的数字

转载 作者:行者123 更新时间:2023-12-01 19:47:44 25 4
gpt4 key购买 nike

我有一个使用 double 的简单计算,但我得到了意外的结果,但我不明白为什么?

import java.util.Scanner;
public class VersatileSnitSoft {

/**
* @param args
*/
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
double amount;
System.out.print("What’s the price of a CD-ROM? ");
amount = myScanner.nextDouble();
amount = amount + 25.00;
System.out.print("We will bill $");
System.out.print(amount);
System.out.println(" to your credit card.");

}

}

如果我输入 2.99,我得到的结果是..

We will bill $27.990000000000002 to your credit card.

最佳答案

在对 double (或 float )进行运算时,无法精确表示十进制值。使用BigDecimal反而。

编辑 (2)

示例如下:

BigDecimal amount = new BigDecimal("2.99");
amount = amount.add(new BigDecimal("25.00"));
System.out.println(amount.toString());

输出:

27.99

关于java - 双显很长的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16715493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com