作者rukawa0328 (卡)
站内java
标题Re: [问题] 关於double 或 int 输出问题
时间Thu Jun 5 10:40:58 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
: 是不是有什麽格式化输出的函式可以用????
: 但是,要做判断是不是整数,有没有什麽方法
: 我那天写题目的方法很笨= =
: 我把每个数字用split(".")切割,判断右边如果都是0
: 就转成int 输出,如果带有小数,就用double 输出
: 结果是,整个程式写下来,变的很复杂
: 所以想问有没有好的判断方法呢??(是否有现成函式库可供判断)
: ps.打了这麽长的解释,後来想想
: 其实就是要问,如何判断是整数还是带有小数@@
归纳一下你的文章 大致上可分两个问题
1. 资料为double(或Double) 且内容为整数时 如何不显示小数点後的.0~
2. 如何判断是整数还是带有小数
如果我没有归纳错误的话...那这两个问题的解法不一样....
问题1.可以直接用java.text.DecimalFormat来解决...
如:System.out.println(new DecimalFormat("#").format(12.00d));
DecimalFormat也可以拿来限制小数显示的位数 (123.45→123.5)
"似乎"会帮忙判断是否进位 不过在使用经验中常常不是我们用的四舍五入
不过原po没有舍入的问题 就不赘述......
问题2.可以这样做.....
System.out.println(12.34d % 1d);
System.out.println(12.34d % 1d == 0);
System.out.println(12.00d % 1d == 0);
--
ptt首po, 有错请鞭.....当然也欢迎交流~XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.159.190