+ -
当前位置:首页 → 问答吧 → 为什么我用.net做出来一个计算器,0.45除以0.045结果是9.99999?

为什么我用.net做出来一个计算器,0.45除以0.045结果是9.99999?

时间:2011-12-24

来源:互联网

求指点,帮朋友做了一个公式计算器,别的算出来都对,为什么用0.45除以0.045结果是9.99999啊?

作者: songsongjielun   发布时间: 2011-12-24

上你的代码看看

作者: wangjun8868   发布时间: 2011-12-24

这问题又来了

基础入门问题,每个计算机老师在头一个星期都会教的东西,“计算机浮点运算精度”

作者: wanghui0380   发布时间: 2011-12-24

你还是别帮你的朋友做了。
这点基础的东西都没弄好,还做啥啊。
好好学习吧。

作者: zanfeng   发布时间: 2011-12-24

计算机精度
Console.Write(0.45/0.045)=10

作者: wuyq11   发布时间: 2011-12-24

引用 2 楼 wanghui0380 的回复:
这问题又来了

基础入门问题,每个计算机老师在头一个星期都会教的东西,“计算机浮点运算精度”


不好意思再问一下,那这个9.999999是怎么算出来的?

作者: songsongjielun   发布时间: 2011-12-24

作者: SCAUSCNU   发布时间: 2011-12-24

浮点类型不能用==号来判断,因为浮点数是一个近似值,只能通过两者相减小于一个可以接受的误差来判断。

作者: SCAUSCNU   发布时间: 2011-12-24

hahahahahahhaha

作者: xuweifrog   发布时间: 2011-12-24

浮点型数除以浮点型数的结果肯定还是浮点型的,得到的结果是一个近似值
 

作者: ljfolo59   发布时间: 2011-12-24

9.9999999... === 1

作者: Saleayas   发布时间: 2011-12-24

写错了。
9.999999... === 10

作者: Saleayas   发布时间: 2011-12-24

该回复于2011-12-26 09:09:48被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#13楼 得分:0回复于:2011-12-24 18:05:52

作者: wang2392219   发布时间: 2011-12-24

虽然9.99999==10;但是你的代码肯定也有问题,上代码吧!

作者: fyq080119   发布时间: 2011-12-24

引用 13 楼 fyq080119 的回复:

代码拿来看看!

引用 14 楼 zhangqwer2345 的回复:

虽然9.99999==10;但是你的代码肯定也有问题,上代码吧!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
  public partial class Form1 : Form
  {
   
  public Form1()
   
  {
  InitializeComponent();
  }


  private void Form1_Load(object sender, EventArgs e)
  {
  textBox1.Text = Convert.ToString( "0 ");
  textBox2.Text = Convert.ToString("1 ");
  textBox3.Text = Convert.ToString("1 ");
  textBox4.Text = Convert.ToString("0 ");
  textBox5.Text = Convert.ToString("0 ");
  textBox6.Text = Convert.ToString("0 ");
  textBox7.Text = Convert.ToString("0 ");
  textBox8.Text = Convert.ToString("0 ");
  textBox9.Text = Convert.ToString("0 ");
  textBox10.Text = Convert.ToString("0 ");
  textBox11.Text = Convert.ToString("0 ");
  textBox12.Text = Convert.ToString("0 ");
  textBox13.Text = Convert.ToString("0 ");

  }

  private void button1_Click(object sender, EventArgs e)
  {
   

  float a = float.Parse(this.textBox1.Text.Trim());
  float b = float.Parse(this.textBox2.Text.Trim());
  float c = float.Parse(this.textBox3.Text.Trim());
  float d = float.Parse(this.textBox4.Text.Trim());
  float f = float.Parse(this.textBox5.Text.Trim());
  float g = float.Parse(this.textBox6.Text.Trim());
  float h = float.Parse(this.textBox7.Text.Trim());
  float i = float.Parse(this.textBox8.Text.Trim());
  float j = float.Parse(this.textBox9.Text.Trim());
  float k = float.Parse(this.textBox10.Text.Trim());
  float l = float.Parse(this.textBox11.Text.Trim());
  float m = float.Parse(this.textBox12.Text.Trim());
  float n = float.Parse(this.textBox13.Text.Trim());
  float s = (a / b) / c + d + f + g + h + i + j + k + l + m + n;
  textBox13.Text = Convert.ToString(s );
  a = float.Parse("0");
  b = float.Parse("1");
  c = float.Parse("1");
  d = float.Parse("0");
  f = float.Parse("0");
  g = float.Parse("0");
  h = float.Parse("0");
  i = float.Parse("0");
  j = float.Parse("0");
  k = float.Parse("0");
  l = float.Parse("0");
  m = float.Parse("0");
  n = float.Parse("0");

  }

   
  }
}

作者: zhangqwer2345   发布时间: 2011-12-24

惴惴不安中。。。

作者: songsongjielun   发布时间: 2011-12-26

用double类型的不就可以了吗!

作者: songsongjielun   发布时间: 2011-12-26

浮点运算都没弄明白,你还是先自己补习补习再帮别人做吧。

作者: zhaoyanzhe   发布时间: 2011-12-26

引用 18 楼 wddw1986 的回复:
浮点运算都没弄明白,你还是先自己补习补习再帮别人做吧。

哎,怎么大家都喜欢这么说。。。。。解决问题不就是学习咩。。。。。看来我是真的做不了这些东西了。。。

作者: wddw1986   发布时间: 2011-12-26

本来浮点数的计算就不是很精确

作者: songsongjielun   发布时间: 2011-12-26

引用 18 楼 wddw1986 的回复:
浮点运算都没弄明白,你还是先自己补习补习再帮别人做吧。


一个计算器 有必要么。 先动手后发现问题有什么不对。。。

作者: ningweidong   发布时间: 2011-12-26

该回复于2011-12-26 11:53:01被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#23楼 得分:0回复于:2011-12-26 11:56:01
引用 18 楼 wddw1986 的回复:

浮点运算都没弄明白,你还是先自己补习补习再帮别人做吧。

引用 2 楼 wanghui0380 的回复:

这问题又来了

基础入门问题,每个计算机老师在头一个星期都会教的东西,“计算机浮点运算精度”


有必要这么说楼主么?你知道告诉楼主就行了,何必装精,每个人对基础的重视程度不一样,你也不敢说所有的基础知识都知道吧,说不定楼主对社会的贡献还比你大,有些鸡毛蒜皮的小知识大多数时候是用不到也记不住的,到要用的时候愿意提示就提示一下,不愿意提示就算了,也不用这样说别人吧。

作者: ooo7880000   发布时间: 2011-12-26

觉得这问题比较低的,大可以关掉,干嘛还说风凉话。

作者: wuxiaoke2009   发布时间: 2011-12-26

浮点型精度不够啊

作者: salifei   发布时间: 2011-12-26