作者H45 (!H45)
站内java
标题Re: [问题] 关於double 或 int 输出问题
时间Wed Jun 4 18:25:15 2008
※ 引述《polomoss (小泽)》之铭言:
: 今天我需要使用者输入两个数来做运算
: 假设可能为
: 5 6
: 1.2 2.7
: 2.5 2.5
: 然後就是做一些运算,(加法 & 减法)
: 所以输出就会是
: 11 -1
: 3.7 -1.5
: 5 0 --------------(1)
: 因为会有小数,所以我从一开始的运算
: 就是打输入的String 用 Double.parseDouble 转成 double 格式
: 所以我的输出就会变成
: 11.0 -1.0
: 3.7 -1.5
: 5.0 0.0 ---------------(2)
: 想问有没有大大有好的方法,让输出是 (1) 而不是下面带有.0
: 是不是有什麽格式化输出的函式可以用????
我的推文方案根本和原PO一样....为了表示诚意,我用其他方便的方法在这边展示
public static void main(String[] args) throws Throwable {
final double a = -0.3;
final double b = -1.0;
System.out.println("a = " + format(a));
System.out.println("b = " + format(b));
}
public static String format(double x) {
final long y = (long)x;
if (x == y) {
return String.valueOf(y);
} else {
return String.valueOf(x);
}
}
---
跑出来的结果
a = -0.3
b = -1
---
重点在 format 函式,只要把 double 转型成 long 再比较就知道有没有非零小数了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.247.13
※ 编辑: H45 来自: 140.116.247.13 (06/04 18:26)
1F:→ H45:若有精准度的问题请改用大数,囧 06/04 18:27
2F:推 polomoss:感觉有快一点~~晚一点我试试看~~ 06/04 19:55