You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java程序如何去掉平方计算结果小数点后末尾的零?

问题描述

现有一个Java计算器程序,可接收两个整数输入,完成加减乘除、平方运算,代码如下:

import java.util.Scanner;
import java.lang.Math;

public class Calculator {
  public static void main(String[] args) {
    int firstNum;
    int secondNum;
    int sum;
    int product;
    int difference;
    float division;
    Scanner scanner = new Scanner(System.in);

    System.out.print("Enter First Number : ");
    firstNum = scanner.nextInt();

    System.out.print("Enter Second Number : ");
    secondNum = scanner.nextInt();

    scanner.close();

    sum = firstNum + secondNum;
    difference = firstNum - secondNum;
    product = firstNum * secondNum;
    division = (float) firstNum / secondNum;
    double firstSquare = Math.pow(firstNum, 2);
    double secondSquare = Math.pow(secondNum, 2);

    System.out.println("Sum = " + sum);
    System.out.println("Division = " + division);
    System.out.println("Product = " + product);
    System.out.println("Difference = " + difference);
    System.out
        .println("Square of " + firstNum + " is " + firstSquare + " Square of " + secondNum + " is " + secondSquare);
  }
}

程序运行输出示例:
输出
当前问题:平方计算返回的double类型结果末尾会带有多余的小数点后零,需要去掉这部分内容。

解决方案

提供三种适配不同场景的处理方式:

  • 方案1:强转为int类型(最适配当前场景)
    因为输入的是整数,平方结果必然是整数,可以直接将Math.pow的返回值强转为int,从根源上避免小数输出:
// 修改平方计算的代码
int firstSquare = (int) Math.pow(firstNum, 2);
int secondSquare = (int) Math.pow(secondNum, 2);
  • 方案2:使用printf格式化输出
    如果不想修改变量类型,可以在输出时指定不展示小数位:
// 替换原来的平方输出语句
System.out.printf("Square of %d is %.0f Square of %d is %.0f%n", firstNum, firstSquare, secondNum, secondSquare);
  • 方案3:使用DecimalFormat格式化
    如果后续需要兼容带小数的计算结果,自动移除末尾无意义的0,可以用DecimalFormat处理:
// 首先导入包
import java.text.DecimalFormat;

// 初始化格式化对象,这里设置最多保留3位小数,无小数时自动隐藏小数点和后缀0
DecimalFormat df = new DecimalFormat("#.###");
// 输出时调用format方法
System.out.println("Square of " + firstNum + " is " + df.format(firstSquare) + " Square of " + secondNum + " is " + df.format(secondSquare));
修改后完整代码示例(采用方案1)
import java.util.Scanner;
import java.lang.Math;

public class Calculator {
  public static void main(String[] args) {
    int firstNum;
    int secondNum;
    int sum;
    int product;
    int difference;
    float division;
    Scanner scanner = new Scanner(System.in);

    System.out.print("输入第一个整数: ");
    firstNum = scanner.nextInt();

    System.out.print("输入第二个整数: ");
    secondNum = scanner.nextInt();

    scanner.close();

    sum = firstNum + secondNum;
    difference = firstNum - secondNum;
    product = firstNum * secondNum;
    division = (float) firstNum / secondNum;
    // 强转为int,避免小数后缀
    int firstSquare = (int) Math.pow(firstNum, 2);
    int secondSquare = (int) Math.pow(secondNum, 2);

    System.out.println("和 = " + sum);
    System.out.println("商 = " + division);
    System.out.println("积 = " + product);
    System.out.println("差 = " + difference);
    System.out.println(firstNum + "的平方是 " + firstSquare + "," + secondNum + "的平方是 " + secondSquare);
  }
}

内容的提问来源于stack exchange,提问作者Hamzah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:06:00