如何在税务程序[Java]中对输出进行四舍五入?
我需要我的输出浮动到小数点后2位,因为输出是货币。例如,如果我运行: 如果您是单身,请输入1。如果您已婚,请输入2 一, 输入您的应纳税所得额 27060.34 联邦所得税:4060.3435美元 我需要联邦所得税来输出4060.34美元,而不是4060.3435美元 我的代码:如何在税务程序[Java]中对输出进行四舍五入?,java,decimal,rounding,Java,Decimal,Rounding,我需要我的输出浮动到小数点后2位,因为输出是货币。例如,如果我运行: 如果您是单身,请输入1。如果您已婚,请输入2 一, 输入您的应纳税所得额 27060.34 联邦所得税:4060.3435美元 我需要联邦所得税来输出4060.34美元,而不是4060.3435美元 我的代码: import static org.junit.Assert.*; import java.util.Scanner; import org.junit.Test; public class IRS { pub
import static org.junit.Assert.*;
import java.util.Scanner;
import org.junit.Test;
public class IRS {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter 1 if you are single. Enter 2 if you are married");
int martialstatus = scan.nextInt();
if (martialstatus == 1) {
Scanner scan2 = new Scanner(System.in);
System.out.println("Enter your taxable income");
double income = scan2.nextDouble();
if ((income > 0) && (income <= 27050.00)) {
System.out.println("Federal Income Tax:$" + (income * .15));
}
if ((income > 27050.00) && (income <= 65550.00)) {
System.out.println("Federal Income Tax:$" + (4057.50 + (.275 * (income - 27050))));
}
if ((income > 65550.00) && (income <= 136750.00)) {
System.out.println("Federal Income Tax:$" + (14645.00 + (.305 * (income - 65550.00))));
}
if ((income > 136750.00) && (income <= 297350.00)) {
System.out.println("Federal Income Tax:$" + (36361.00 + (.355 * (income - 136750.00))));
}
if (income > 297350.00) {
System.out.println("Federal Income Tax:$" + (93374.00 + (.391 * (income - 297350.00))));
}
} else if (martialstatus == 2) {
Scanner scan3 = new Scanner(System.in);
System.out.println("Enter your taxable income");
double income2 = scan3.nextDouble();
if (income2 <= 45200.00) {
System.out.println("Federal Income Tax:$" + (.15 * income2));
}
if ((income2 > 45200.00) && (income2 <= 109250.00)) {
System.out.println("Federal Income Tax:$" + (6780.00 + (.275 * (income2 - 45200))));
}
if ((income2 > 109250.00) && (income2 <= 166500.00)) {
System.out.println("Federal Income Tax:$" + (24393.75 + (.305 * (income2 - 109250.00))));
}
if ((income2 > 166500.00) && (income2 <= 297350.00)) {
System.out.println("Federal Income Tax:$" + (41855.00 + (.355 * (income2 - 166500.00))));
}
if (income2 > 297350.00) {
System.out.println("Federal Income Tax:$" + (88306.00 + (.391 * (income2 - 297350.00))));
}
} else {
System.out.println("Error. Try again");
}
}
}
import static org.junit.Assert.*;
导入java.util.Scanner;
导入org.junit.Test;
公共类国税局{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“单身时输入1,已婚时输入2”);
int martialstatus=scan.nextInt();
如果(军事状态==1){
扫描仪scan2=新扫描仪(System.in);
System.out.println(“输入您的应纳税所得额”);
双倍收入=扫描2.nextDouble();
如果((收入>0)和(收入27050.00)和(收入65550.00)和(收入136750.00)和(收入297350.00){
System.out.println(“联邦所得税:$”+(93374.00+(.391*(收入-297350.00)));
}
}否则如果(军事状态==2){
Scanner scan3=新扫描仪(System.in);
System.out.println(“输入您的应纳税所得额”);
double income2=scan3.nextDouble();
如果(income2 45200.00)和(income2 109250.00)和(income2 166500.00)和(income2 297350.00){
System.out.println(“联邦所得税:$”+(88306.00+(.391*(income2-297350.00));
}
}否则{
System.out.println(“错误。重试”);
}
}
}
如果您对C风格的打印感到满意(这正是我在此推荐的),您可以使用System.out.printf(),它与C的printf()非常相似
如果您对C风格的打印感到满意(这正是我在这里推荐的),您可以使用System.out.printf(),它与C的printf()非常相似
如果您对C风格的打印感到满意(这正是我在这里推荐的),您可以使用System.out.printf(),它与C的printf()非常相似
如果您对C风格的打印感到满意(这正是我在这里推荐的),您可以使用System.out.printf(),它与C的printf()非常相似 使用十进制格式:
java.text.DecimalFormat formatter = new java.text.DecimalFormat( "$###,###,###,##0.00";-$###,###,###,##0.00" );
formatter.format( 4060.3435 );
使用十进制格式:
java.text.DecimalFormat formatter = new java.text.DecimalFormat( "$###,###,###,##0.00";-$###,###,###,##0.00" );
formatter.format( 4060.3435 );
使用十进制格式:
java.text.DecimalFormat formatter = new java.text.DecimalFormat( "$###,###,###,##0.00";-$###,###,###,##0.00" );
formatter.format( 4060.3435 );
使用十进制格式:
java.text.DecimalFormat formatter = new java.text.DecimalFormat( "$###,###,###,##0.00";-$###,###,###,##0.00" );
formatter.format( 4060.3435 );
由于浮点运算固有的不确定性,在知道“正确”答案很重要的数学运算中,应始终使用BigDecimal(税务程序将是一个很好的例子) 这个问题有一个很好的例子,请注意第一个答案:
由于浮点运算固有的不确定性,在知道“正确”答案很重要的数学运算中,应始终使用BigDecimal(税务程序将是一个很好的例子) 这个问题有一个很好的例子,请注意第一个答案:
由于浮点运算固有的不确定性,在知道“正确”答案很重要的数学运算中,应始终使用BigDecimal(税务程序将是一个很好的例子) 这个问题有一个很好的例子,请注意第一个答案:
由于浮点运算固有的不确定性,在知道“正确”答案很重要的数学运算中,应始终使用BigDecimal(税务程序将是一个很好的例子) 这个问题有一个很好的例子,请注意第一个答案:
首先:不要使用
浮点
或双精度
计算货币值。请改用大十进制
第二个问题:
要对值进行四舍五入,请使用以下公式(在我的示例中,我使用了double
,但如果您不知道自己在做什么,请不要这样做):
此方法四舍五入到一个有效的小数位数。如果需要其他小数位数,则必须更改此实现。首先:不要使用
float
或double
来计算货币值。请改用BigDecimal
System.out.println("Federal Income Tax:$" + (double) Math.round((88306.00 +(.391*(income2 - 297350.00))))) /100.0;
第二个问题:
要对值进行四舍五入,请使用以下公式(在我的示例中,我使用了double
,但如果您不知道自己在做什么,请不要这样做):
此方法四舍五入到一个有效的小数位数。如果需要其他小数位数,则必须更改此实现。首先:不要使用
float
或double
来计算货币值。请改用BigDecimal
System.out.println("Federal Income Tax:$" + (double) Math.round((88306.00 +(.391*(income2 - 297350.00))))) /100.0;
第二个问题:
要对值进行四舍五入,请使用以下公式(在我的示例中,我使用了double
,但如果您不知道自己在做什么,请不要这样做):
此方法四舍五入到一个有效的小数位数。如果需要其他小数位数,则必须更改此实现。首先:不要使用
float
或double
来计算货币值。请改用BigDecimal
System.out.println("Federal Income Tax:$" + (double) Math.round((88306.00 +(.391*(income2 - 297350.00))))) /100.0;
第二个问题:
要对值进行四舍五入,请使用以下公式(在我的示例中,我使用了double
,但如果您不知道自己在做什么,请不要这样做):
此方法四舍五入到一个有效的小数位。如果需要其他小数位,则必须更改此实现。正如其他人所说:要么使用BigDecimal,要么——在大多数情况下更好的解决方案——使用便士而不是美元进行计算。这将立即消除大多数四舍五入问题!正如others说:要么使用BigDecimal,要么——在大多数情况下是更好的解决方案——用
System.out.println("Federal Income Tax:$" + (double) Math.round((88306.00 +(.391*(income2 - 297350.00))))) /100.0;