格式化,大十进制,请按百分比计算

Posted

技术标签:

【中文标题】格式化,大十进制,请按百分比计算【英文标题】:Formatting, Big Decimal, interest to percent please 【发布时间】:2020-06-05 02:29:30 【问题描述】:

有人可以解释一下用法,而不仅仅是回答我真的很想学习如何做到这一点。这是我使用 Java 的第二个月,请解释 Java 中的格式化用法。非常感谢。对此,我真的非常感激。随意询问有关 C++ 或 python 的任何其他问题。我在格式化、大小数使用以及如何设置方面需要帮助


import java.util.*;

import java.math.BigDecimal;

import java.text.NumberFormat;

import java.math.*;


public class Main
    public static void main(String[] args)
    

        Scanner myCalculation = new Scanner(System.in);

        System.out.print("Welcome to the Interest Calculator \n\n");
        String option = "y";
        while (option.equalsIgnoreCase("y"))
        

            System.out.print("Enter Loan Amount: ");
            //double loanAmount = 520000;
            double loanAmount = myCalculation.nextDouble();
            //Get Interest rate from user
            System.out.print("Enter Interest Rate: ");
            // double interRate = .05375;
            double interRate = myCalculation.nextDouble();


            double interest = loanAmount * interRate;

            System.out.printf("%.3f", interest);
            System.out.println();


            //prompt user to continue? if he enter y then it will Continue
            //else it will stop
            //System.out.println("Continue? (y:n): ");
            Scanner scan = new Scanner(System.in);
            boolean stop = false;    
            while(!stop) 
            //do whatever
                System.out.println("Would you like to continue? (yes or no)");
                String s = scan.nextLine();
                if(s.equals("no")) 
                    stop = true;
                
            

        
    

【问题讨论】:

我不清楚问题是什么 我正在尝试使用 BigDecimal 类来计算利息金额,以确保所有计算都是准确的。然后我想用NumberFormat抽象类基类格式化利率、利息金额和贷款金额和利息。 我将假设此代码不会用于真钱。如果您确实想在真钱上使用它,请使用专门为处理货币计算而构建的库。 NumberFormat 实际上并不是抽象的,但它 DecimalFormat (javadoc) 的基类,您可能会想要使用它,因为它可以格式化百分比。 您介意分享一下如何使用 NumberFormat 函数 【参考方案1】:
Scanner in = new Scanner(System.in);
System.out.print("enter double");
double d = in.nextDouble(); //doubles
System.out.print("enter int");
int i = in.nextInt(); //ints

System.out.print("enter text");
String text = in.next(); //gets a string up to the first space
in.nextLine();
System.out.print("enter text w/ spaces");
String line = in.nextLine(); //gets a string up to the first space

System.out.println(d);
System.out.println(i);
System.out.println(text);
System.out.println(line);
in.close();

System.out.println(new DecimalFormat("#.###").format(4.567346344634));

【讨论】:

以上是关于格式化,大十进制,请按百分比计算的主要内容,如果未能解决你的问题,请参考以下文章

java字符串格式化

php的%s

DecimalFormat用法

基础练习(02)十进制化二进制01字串

如何将十进制值显示到小数点后 2 位?

Android 透明度百分比对应的 十六进制