ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

我的平方根和多维数据集打印后,似乎无法摆脱小数点?

2019-10-30 13:00:17  阅读:229  来源: 互联网

标签:decimal java


在我用Java编写的简单程序中,如果不显示0-10的平方根和立方数,就不能显示结果,而后不显示小数点吗?我该如何摆脱呢?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package assignmenttwo;

/**
 *
 * @author JordanSimps
 */
public class AssignmentTwo {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        double Square;
        double Cube;

        for ( int Number = 0; Number <= 10; Number++ ) {
            Square = Number * Number;
            Cube = Number * Number * Number;
            System.out.printf("%-10s %-10s %-10s\n", "Number", "Square", "Cube");
            System.out.printf("%-10s %-10s %-10s\n", Number, Square, Cube);
        }
    }
}

解决方法:

解决此问题的一种非常简单的方法是将Square和Cube的类型更改为int而不是double. (但是请确保您的结果将始终是Integer …)

您还可以使用DecimalFormat对象,这很容易理解.
(它看起来也更像Java…您的感觉有点像C.)

// this decimal format will display number after the dot only if there is.
// 1256.200 -> 1,256.2  whereas 152.0 -> 152
DecimalFormat df2 = new DecimalFormat( "###,##0.###" );
System.out.println("formated square : "+df2.format(Square));

编辑以遵循您的示例:

public static void main(String[] args) {
    double Square;
    double Cube;

    DecimalFormat df2 = new DecimalFormat( "###,##0.###" );

    for ( int Number = 0; Number <= 10; Number++ ) {
        Square = Number * Number;
        Cube = Number * Number * Number;
        System.out.println("Number \tSquare \tCube");
        System.out.println(Number + "\t" +  df2.format(Square) + "\t" + df2.format(Cube));
    }
}

一些说明:

>使用第一种方法,可以更改程序STORES,数据的方式(选择整数或双精度(双精度浮点数)).
在一种情况下,您的数据存储为整数,因此不能是十进制值,在另一种情况下,它接受十进制值.
现在,这取决于您要的内容…如果您确定不会将任何十进制值添加到正方形和立方体,并且它们不会溢出整数类型(值< 2 ^ 31),则可以使用第一种方法
>使用第二种方法,您只是在更改计算机的显示方式.
因此,您的数字始终存储为双精度浮点,因此它可以接受更多值,并且您的程序将适合更多的用例.
然后,当您想向用户显示您的号码时,您告诉计算机(使用DecimalFormat对象)要如何操作.
在我的示例中,我说过只有在要显示的有效位数小数点后才要3.您可以查看here的更多详细信息

恕我直言,我建议第二种方法.

标签:decimal,java
来源: https://codeday.me/bug/20191030/1968156.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有