c语言中double类型值的大小比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中double类型值的大小比较相关的知识,希望对你有一定的参考价值。

参考技术A

由于double浮点数的精度问题,所以在比较大小的时候,不能像int整数型那样,直接if(a==b),if(a<b),if(a>b)。

要使用一个精度EPS:

const double EPS = 1e-6;  //一般这样子就够,但有时具体题目要考虑是否要更小的 ;

if(fabs(a-b) < EPS)  //判断是否相等 ;

if(a > b+EPS)   // 判断a是否大于b,因为大的肯定大,所以即使你小的加上,还是会更大 。

扩展资料

JAVA double类型比较大小

@org.junit.Test

public void Test()

BigDecimal big = new BigDecimal(1);

BigDecimal Graphicprice = new BigDecimal(0.01);//图文价格

BigDecimal Speechprice = new BigDecimal(0.02);//语音价格

BigDecimal Videoprice = new BigDecimal(1);//视频价格

System.out.println(Graphicprice + " " + Speechprice +" " + Videoprice);

if(Graphicprice.compareTo(big)<0 || Graphicprice.compareTo(big)==0 || 

Speechprice.compareTo(big)<0 || Speechprice.compareTo(big)==0 || 

Videoprice.compareTo(big)<0 || Videoprice.compareTo(big)==0)

System.out.println("ok");





C#比较大小

四个文本框,前三个可输入double类型数据,在第四个文本框中显示最大的数字和最小数字的差的,有个按钮控制.
三个文本框算一组,每个里面输入个double型数据,求出最大值和最小值的差,有三组,意思就是9个文本框,总共要输入9个数据,
每组最大值减最小值的差之和除以3,就要这个数字,找个文本框显示,不会再变了

参考技术A 我已经把问题解决到这了 如果你再不会的话 你学这个也没意思了
private void button1_Click(object sender, EventArgs e)//点击按钮事件

double[] num=new double[3];
double a = Convert.ToDouble(textBox1.Text);
num[0]=a;
double b = Convert.ToDouble(textBox2.Text);
num[1]=b;
double c = Convert.ToDouble(textBox3.Text);
num[2]=c;
double max=num[0],min=num[0];
for(int i=0;i<3;i++)

if(num[i]>max)
max=num[i];
if(num[i]<min)
min=num[i];

double sum=max-min;
textBox4.Text = sum.ToString();
本回答被提问者采纳
参考技术B 楼上的方法是对的,但是多定义了变量,浪费内存中的指针地址。。

以上是关于c语言中double类型值的大小比较的主要内容,如果未能解决你的问题,请参考以下文章

c语言,double类型数值比较为啥出错,如何比较两个double类型大小?

c语言中将一个数组中,相邻得元素俩俩相加找出最大得组合

C语言自动类型转换

C 语言包含的数据类型

C语言 读取文件到内存

C语言如何写有返回值的函数