123
返回列表 发新帖
楼主: 老虎借猪

一个简单程序的疑惑

[复制链接]
论坛徽章:
4
生肖徽章:牛
日期:2007-05-07 05:31:44ERP板块每日发贴之星
日期:2007-05-21 01:02:55设计板块每日发贴之星
日期:2007-05-23 01:04:28会员2007贡献徽章
日期:2007-09-26 18:42:10
21#
发表于 2007-5-22 11:48 | 只看该作者
最初由 老虎借猪 发布
[B]

基本搞清楚了,看来小数运算还是用BigDecimal比较好 [/B]


i is: 1
result is: 10.1
average is 10.1
===========================
i is: 2
result is: 60.3
average is 30.15
===========================
i is: 3
result is: 70.6
average is 23.534    错了吧[/COLOR]
===========================
i is: 4
result is: 81.0
average is 20.25
===========================
i is: 5
result is: 91.0
average is 18.2
===========================

使用道具 举报

回复
论坛徽章:
15
ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:37金牛座
日期:2016-01-06 14:04:03沸羊羊
日期:2015-07-06 16:16:54慢羊羊
日期:2015-06-15 14:42:49马上有房
日期:2014-08-10 15:53:492014年世界杯参赛球队: 哥伦比亚
日期:2014-06-19 22:12:412014年新春福章
日期:2014-02-22 21:58:42马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11大众
日期:2014-01-29 20:58:06
22#
发表于 2007-5-22 14:02 | 只看该作者
average = result.divide(new BigDecimal(i),[B]3[/B],BigDecimal.ROUND_CEILING);
精度取三位,楼上的去看看BigDecimal.divide方法说明

使用道具 举报

回复
论坛徽章:
4
生肖徽章:牛
日期:2007-05-07 05:31:44ERP板块每日发贴之星
日期:2007-05-21 01:02:55设计板块每日发贴之星
日期:2007-05-23 01:04:28会员2007贡献徽章
日期:2007-09-26 18:42:10
23#
发表于 2007-5-22 15:02 | 只看该作者
不应该是23.533吗。

使用道具 举报

回复
论坛徽章:
4
生肖徽章:牛
日期:2007-05-07 05:31:44ERP板块每日发贴之星
日期:2007-05-21 01:02:55设计板块每日发贴之星
日期:2007-05-23 01:04:28会员2007贡献徽章
日期:2007-09-26 18:42:10
24#
发表于 2007-5-22 15:06 | 只看该作者
http://gceclub.sun.com.cn/Java_D ... h/RoundingMode.html

<table border>
<caption top><h3>不同舍入模式下的舍入操作汇总</h3></caption>
<tr><th></th><th colspan=8>根据给定的舍入模式将输入数字舍入为一位数的结果</th>
<tr valign=top>
<th>输入数字</th>    <th><tt>UP</tt></th>
                                           <th><tt>DOWN</tt></th>
                                                        <th><tt>CEILING</tt></th>
                                                                       <th><tt>FLOOR</tt></th>
                                                                                    <th><tt>HALF_UP</tt></th>
                                                                                                   <th><tt>HALF_DOWN</tt></th>
                                                                                                                    <th><tt>HALF_EVEN</tt></th>
                                                                                                                                     <th><tt>UNNECESSARY</tt></th>
   
<tr align=right><td>5.5</td>     <td>6</td>  <td>5</td>    <td>6</td>    <td>5</td>  <td>6</td>      <td>5</td>       <td>6</td>       <td>抛出 <tt>ArithmeticException</tt></td>
<tr align=right><td>2.5</td>     <td>3</td>  <td>2</td>    <td>3</td>    <td>2</td>  <td>3</td>      <td>2</td>       <td>2</td>       <td>抛出 <tt>ArithmeticException</tt></td>
<tr align=right><td>1.6</td>     <td>2</td>  <td>1</td>    <td>2</td>    <td>1</td>  <td>2</td>      <td>2</td>       <td>2</td>       <td>抛出 <tt>ArithmeticException</tt></td>
<tr align=right><td>1.1</td>     <td>2</td>  <td>1</td>    <td>2</td>    <td>1</td>  <td>1</td>      <td>1</td>       <td>1</td>       <td>抛出 <tt>ArithmeticException</tt></td>
<tr align=right><td>1.0</td>    <td>1</td>  <td>1</td>    <td>1</td>    <td>1</td>  <td>1</td>      <td>1</td>       <td>1</td>       <td>1</td>                                
<tr align=right><td>-1.0</td> <td>-1</td> <td>-1</td>   <td>-1</td>     <td>-1</td> <td>-1</td>     <td>-1</td>      <td>-1</td>      <td>-1</td>                              
<tr align=right><td>-1.1</td> <td>-2</td> <td>-1</td>   <td>-1</td>      <td>-2</td> <td>-1</td>     <td>-1</td>      <td>-1</td>      <td>抛出 <tt>ArithmeticException</tt></td>
<tr align=right><td>-1.6</td> <td>-2</td> <td>-1</td>   <td>-1</td>      <td>-2</td> <td>-2</td>     <td>-2</td>      <td>-2</td>      <td>抛出 <tt>ArithmeticException</tt></td>
<tr align=right><td>-2.5</td> <td>-3</td> <td>-2</td>   <td>-2</td>      <td>-3</td> <td>-3</td>     <td>-2</td>      <td>-2</td>      <td>抛出 <tt>ArithmeticException</tt></td>
<tr align=right><td>-5.5</td> <td>-6</td> <td>-5</td>   <td>-5</td>      <td>-6</td> <td>-6</td>     <td>-5</td>      <td>-6</td>      <td>抛出 <tt>ArithmeticException</tt></td>
</table>

使用道具 举报

回复
论坛徽章:
4
生肖徽章:牛
日期:2007-05-07 05:31:44ERP板块每日发贴之星
日期:2007-05-21 01:02:55设计板块每日发贴之星
日期:2007-05-23 01:04:28会员2007贡献徽章
日期:2007-09-26 18:42:10
25#
发表于 2007-5-22 15:09 | 只看该作者
不应该是HALF_UP吗

使用道具 举报

回复
论坛徽章:
0
26#
发表于 2007-10-1 08:28 | 只看该作者
import java.text.NumberFormat;
import java.text.Format;
public class Average {
        public static void main(String args[]) {

                float nums[] = { 10.1f, 50.2f, 10.3f, 10.4f, 10.0f };
                float result = 0.0f;
                NumberFormat nf=  NumberFormat.getNumberInstance();
                StringBuffer sb = new StringBuffer ();
                for (int i = 1; i < 6; i++) {

                        result = result + nums[i - 1];
                        float average = result / i;
                        System.out.println("result is: " + nf.format(result) );
                        System.out.println("average is " + nf.format( average ));
                }

        }
}

使用道具 举报

回复
论坛徽章:
12
ERP板块每日发贴之星
日期:2007-09-30 01:04:37沸羊羊
日期:2015-03-04 14:43:43奥运会纪念徽章:篮球
日期:2012-09-07 13:16:522012新春纪念徽章
日期:2012-01-04 11:49:54双黄蛋
日期:2011-11-30 14:24:44祖国60周年纪念徽章
日期:2009-10-09 08:28:00开发板块每日发贴之星
日期:2007-10-23 01:04:24授权会员
日期:2007-10-22 11:44:53ITPUB元老
日期:2007-10-20 10:15:22ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
27#
发表于 2007-10-22 11:02 | 只看该作者
应该进度上有问题,{10.1,50.2,10.3,10.4,10.0};加起来等于91.00000000000001,不知道这是为什么?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表