Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将这些int值格式化为货币打印。(老虎机程序)_Java_Format - Fatal编程技术网

Java 如何将这些int值格式化为货币打印。(老虎机程序)

Java 如何将这些int值格式化为货币打印。(老虎机程序),java,format,Java,Format,我正在为课堂做一个节目。这应该是一台老虎机。你从用户那里得到一个赌注,如果他们匹配号码,他们就会得到奖励。我们必须使用所有整数,但所有数字都必须以货币形式打印,比如10美元换10美元。在第一个if语句中,我试图格式化它,但出现了一个错误。请提供帮助,如果您发现任何其他问题,请指出 import java.util.*; public class SlotMachine { public static void main(String[] args) { Scanner input =

我正在为课堂做一个节目。这应该是一台老虎机。你从用户那里得到一个赌注,如果他们匹配号码,他们就会得到奖励。我们必须使用所有整数,但所有数字都必须以货币形式打印,比如10美元换10美元。在第一个if语句中,我试图格式化它,但出现了一个错误。请提供帮助,如果您发现任何其他问题,请指出

import java.util.*;
public class SlotMachine {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int slot1, slot2, slot3;
     Random generator = new Random();
     int balance = 10;
     int bet;
     do {
         System.out.println("Enter your bet");
         bet = input.nextInt();
     } while (bet < 0 || bet > balance);
     while (bet != 0) {
         slot1 = generator.nextInt(10);
         slot2 = generator.nextInt(10);
         slot3 = generator.nextInt(10);
         slot1 = 3;
         slot2 = 3;
         slot3 = 3; 
         System.out.println("Your numbers are " + slot1 + " " + slot2 + " " + slot3);
         if ((slot1 == slot2 && slot1==slot3 && slot2 == slot3)&& slot1 >0)
         {
             int winnings = (slot1 + 1)*bet;
             System.out.printf("Your winnings are: %.2f"+ winnings);
             balance = balance - bet + winnings;
             System.out.printf("Your new balance is: %.2f "+ balance);

         }
         if (slot1 == slot2 || slot1 == slot3 || slot2 == slot3)
         {
             if(slot1 == slot2 || slot1 == slot3 && slot1 >0)
             {
                 int winnings = (slot1 * bet)/2;
                 System.out.println("Your winnings are " + winnings);
                 balance = balance - bet + winnings;
                 System.out.println("Your new balance is " + balance);
             }
             else if (slot2 == slot3)
             {
                 int winnings = (slot2 * bet)/2;
                 System.out.println("Your winnings are " + winnings);
                 balance = balance - bet + winnings;
                 System.out.println("Your new balance is " + balance);
             }


         }
         else
         {
            int winnings = 0;
            balance = balance - bet + winnings;
            System.out.println("Your balance is " + balance);
         }
        if (balance > 0)
        {
            System.out.println("Enter your bet");
            bet = input.nextInt();
        }
        else
        {
            bet = 0;
        }

     }
     int winnings = balance - bet;
     System.out.println(winnings);
     System.out.println(balance);
     }
}
import java.util.*;
公营斯洛特机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int slot1、slot2、slot3;
随机生成器=新随机();
国际收支平衡=10;
int-bet;
做{
System.out.println(“输入您的赌注”);
bet=input.nextInt();
}而(下注<0 | |下注>余额);
而(打赌!=0){
slot1=发电机下一个(10);
slot2=发电机下一个(10);
slot3=发电机下一个(10);
slot1=3;
slot2=3;
slot3=3;
System.out.println(“您的数字是”+slot1+“”+slot2+“”+slot3);
如果((slot1==slot2&&slot1==slot3&&slot2==slot3)&&slot1>0)
{
整数赢款=(slot1+1)*下注;
System.out.printf(“您的奖金为:%.2f”+奖金);
余额=余额-下注+赢款;
System.out.printf(“您的新余额为:%.2f”+余额);
}
如果(slot1==slot2 | | slot1==slot3 | | slot2==slot3)
{
如果(slot1==slot2 | | slot1==slot3&&slot1>0)
{
整数赢款=(slot1*bet)/2;
System.out.println(“您的奖金是”+奖金);
余额=余额-下注+赢款;
System.out.println(“您的新余额为”+余额);
}
else if(slot2==slot3)
{
整数赢款=(slot2*bet)/2;
System.out.println(“您的奖金是”+奖金);
余额=余额-下注+赢款;
System.out.println(“您的新余额为”+余额);
}
}
其他的
{
整数赢款=0;
余额=余额-下注+赢款;
System.out.println(“您的余额为”+余额);
}
如果(余额>0)
{
System.out.println(“输入您的赌注”);
bet=input.nextInt();
}
其他的
{
bet=0;
}
}
整数赢款=余额-赌注;
系统输出打印项次(奖金);
系统输出打印项次(余额);
}
}

首先,你不需要这样做

(slot1 == slot2 && slot1==slot3 && slot2 == slot3)
只是

而且,如果您确定所有涉及的数字都是整数,并且我们只需要在末尾显示.00,那么只需这样做

System.out.println("Your new balance is: $"+ balance + ".00");
由于我们只是在增加,我怀疑会有一部分

最后,如果仍要使用printf,则需要将int转换为float

System.out.printf("Your winnings are: %.2f", (float)winnings);
请注意,在代码中,您使用的是+而不是


在println或print中使用的。不在printf中

如果你只是格式化
int
值,为什么不格式化
“$”+intvar+“.00”
?这篇文章与javascript无关,如果你删除了该标记,你应该会更快得到更好的答案。你的问题是关于格式化输出,因此,将您的代码示例简化为相关部分将非常有用。顺便说一下,%.2f只对浮点值有效。这可能就是你犯的错误。请看我的答案
System.out.printf("Your winnings are: %.2f", (float)winnings);