【问题标题】:printf to print decimal part only in java [duplicate]printf仅在java中打印小数部分[重复]
【发布时间】:2013-03-12 11:48:59
【问题描述】:

我想分别打印双数的实部和小数部分,而不使用字符串或数组的概念?我不知道如何使用 printf() 只打印小数部分。

输入 1:13.31432 输出 1:13 31432

输入 2:15.36 输出 2:15 36

我可以打印实数部分,但不能打印小数部分。

【问题讨论】:

标签: java decimal printf


【解决方案1】:
System.out.println((long)input); //Prints real part
System.out.println(input - (long)input); //Prints decimal part

【讨论】:

  • 考虑数字 15.26 第一行将打印 15 但第二行仍然打印 0.26 而不是 26
  • 双 x = 13.31432d; System.out.println((int) d); System.out.println(d - (int) d);它给出的输出为:13 0.3143200000000004 但我需要输出为:13 31432
  • @PremKumarNaidu 您可以使用子字符串删除0.。例如,System.out.println(String.valueOf(d - (int) d).substring(2));。我认为在一般情况下没有删除 00000000004 的好方法,因为计算机不会精确存储浮点数。但是,如果您知道它始终是您想要的五位数,您可以这样做:System.out.println(String.format("%.05f", d - (int) d).substring(2)); 得到准确的 31432
  • @Boann:我不想使用字符串或数组概念。不转成String可以得到小数部分吗?
  • 如果在某处不使用String,您将无法获得预期的输出。如果我得到线索,我会尝试更新我的帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多