微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Java 中从浮点变量的输出中删除小数

如何解决在 Java 中从浮点变量的输出中删除小数

我想使用严格的浮点变量根据虚构的货币对纸币和硬币进行排序。我的代码快完成了,我只需要从输出删除小数即可。 输出可以是 n.00 格式,或者理想情况下是 n 格式。 欢迎提出所有建议。

示例代码

package TEST;
import java.util.Scanner;
import java.lang.Math;
public class TEST {
  public static void main(String[] args) {
  Scanner scanner = new Scanner(system.in);
  //let a be currency value,r the reminder,and n the number of banknotes and coins
  float a = scanner.nextFloat();
  float r = a%500; float n = a/500;
  //500,100,50,20,10,5,2 banknotes; and 0.50,0.25,0.10,0.05 and 0.01 coins.
  
  System.out.printf("Value of currency: %5.2f%n",a);
  System.out.printf("Number of 500 banknotes: %5.2f%n",n);
  
  if (r != 0) {
      a=r; r=a%100; n=a/100; System.out.printf("Number of 100 banknotes: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%50; n=a/50; System.out.printf("Number of 50 banknotes: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%20; n=a/20; System.out.printf("Number of 20 banknotes: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%10; n=a/10; System.out.printf("Number of 10 banknotes: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%5; n=a/5; System.out.printf("Number of 5 banknotes: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%2; n=a/2; System.out.printf("Number of 2 banknotes: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%0.50f; n=a/0.50f; System.out.printf("Number of 0.50 coins: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%0.25f; n=a/0.25f; System.out.printf("Number of 0.25 coins: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%0.10f; n=a/0.10f; System.out.printf("Number of 0.10 coins: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%0.05f; n=a/0.05f; System.out.printf("Number of 0.05 coins: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%0.02f; n=a/0.02f; System.out.printf("Number of 0.02 coins: %5.2f%n",n);
  if (r != 0) {
      a=r; r=a%0.01f; n=a/0.01f; System.out.printf("Number of 0.01 coins: %5.2f%n",n);
  }}}}}}}}}}}}
  }}

示例输出

666.666
Value of currency: 666.67
Number of 500 banknotes:  1.33
Number of 100 banknotes:  1.67
Number of 50 banknotes:  1.33
Number of 20 banknotes:  0.83
Number of 10 banknotes:  1.67
Number of 5 banknotes:  1.33
Number of 2 banknotes:  0.83
Number of 0.50 coins:  3.33
Number of 0.25 coins:  0.66
Number of 0.10 coins:  1.66
Number of 0.05 coins:  1.32
Number of 0.02 coins:  0.80
Number of 0.01 coins:  1.60

理想输出

666.666
Value of currency: 666.67
Number of 500 banknotes:  1
Number of 100 banknotes:  1
Number of 50 banknotes:  1
Number of 20 banknotes:  0
Number of 10 banknotes:  1
Number of 5 banknotes:  1
Number of 2 banknotes:  0
Number of 0.50 coins:  3
Number of 0.25 coins:  0
Number of 0.10 coins:  1
Number of 0.05 coins:  1
Number of 0.02 coins:  0
Number of 0.01 coins:  1

解决方法

将浮点数转换为整数。

float f = 2.65f;
int i = (int)f;
System.out.println(i);

// or
System.out.printf("%d%n",(int)f);
        

印刷品

2
2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。