A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李行周 中级黑马   /  2012-12-20 09:42  /  6057 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李行周 于 2012-12-20 13:00 编辑

Double浮点数能精确到多少位小数?重点是使用的测试算法,怎么写的!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

9 个回复

倒序浏览
double 关键字表示存储 64 位浮点值的简单类型。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
double是储存到64位的
回复 使用道具 举报
事在人为 发表于 2012-12-20 10:03
double 关键字表示存储 64 位浮点值的简单类型。

用什么算法可以测出来,算法怎么写
回复 使用道具 举报
本帖最后由 王晨 于 2012-12-20 17:27 编辑

你是这个意思吗?我写了个double的除法计算(1/3无限循环)

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             double i=1.0,j=3.0;  
  12.             i=i/j;
  13.             Console.Write(i);
  14.             Console.ReadKey();

  15.         }
  16.     }
  17. }
复制代码

这样结果很明显的!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
李行周 发表于 2012-12-20 12:55
用什么算法可以测出来,算法怎么写

可以用它的最大最小值的属性啊。MAXVALUE,MINVALUE
回复 使用道具 举报
double是存储64位的双精度浮点型
class DoubleTemo
{
public static void main(String[] args)
{
double i=1.0,j=3.0;
i=i/j;
System.out.println("i="+i);
}
}
回复 使用道具 举报
楼主你说的精确到底是什么意思,是他表示的范围,还是准确计算出值的程度。
如果2.0-1.1得到的值在小数点后面一位就错了,那么是不是说明它的精确度为0.
不要尝试用浮点数计算出准确的结果
回复 使用道具 举报
罗会涛 发表于 2012-12-21 12:22
楼主你说的精确到底是什么意思,是他表示的范围,还是准确计算出值的程度。
如果2.0-1.1得到的值在小数点后 ...

精确比如:0.5精确到0.1;0.05精确到0.01;0.1精确到1位小数,0.01精确到两位小数
回复 使用道具 举报
李行周 发表于 2012-12-21 12:58
精确比如:0.5精确到0.1;0.05精确到0.01;0.1精确到1位小数,0.01精确到两位小数 ...

关键是你怎么知道他是0.5,0.5只是它打印出来的值,实际的值不是0.5,他可能比0.5大或者小是一个近似于0.5的数,不是确定的0.5
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马