DC匹配中遇到的小问题

<span style="font-family: simsun;">double a = 3.141592, b = 2213242.329843;</span>
cout.precision(6);
cout << a << endl << b;

输出的是:

3.14159
221324

上面输出的是“6个有效数字”,而想要输出 3.141592 和 2213242.329843 的数字,不管小数点前面有几位,那就要:

double a = 3.141592, b = 2213242.329843;
cout.setf(ios::showpoint); //设置为始终输出小数点后的数字,就是说 a = 3,它也输出 3.00000 这样
cout.precision(6);
cout.setf(ios::fixed); //设置为小数位始终有 6 位,没有这个的话就会像上面那个代码那样固定的不是小数点后面的数字了。
cout << a << endl << b;

输出就是:

3.141592
2213242.329843
<span style="font-family:simsun;">/*今天遇到的问题就是输出数据的时候出现#INF和#QNAN,这是因为数据越界造成的无效数据计算,修改控制的维度就是OK。</span>
<span style="font-family:simsun;">在我的这个程序中使用以上方法控制了数据结果的有效位,还可以利用printf生成的有效数字位数,这里就不多说了。以下的程序段写的确实很傻X:*/</span>
<span style="font-family:simsun;"></span><pre name="code" class="cpp">for (int i=0;i<d1-4;i=i+4)
	{
		for (int j=0;j<d2-4;j=j+4)
		{
			
			double per=abs(tv1[i]-tv2[j])+(tv1[i+1]-tv2[j+1])*(tv1[i+1]-tv2[j+1])+(tv1[i+2]-tv2[j+2])*(tv1[i+2]-tv2[j+2])+(tv1[i+3]-tv2[j+3])*(tv1[i+3]-tv2[j+3]);
		  temp1=sqrt(per);
		}
	}

	cout.precision(8);
	cout <<temp1<< endl ;
//不多说了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值