C++ 中怎样控制数据输出精度?

代码很简单如下:

ofstream outfile("C:\\Users\\Song\\Desktop\\20171106\\final.txt", ios::in | ios::out | ios::binary);

    for (int b = 1; b < 257; b++)
    {
        outfile  << y[b] << "";
    }
    outfile.close();

我的问题是:
数组y内显示8.7391425897412365e19,输出到TXT文件内以后变成了8.73914e-019,想问一下怎样才能控制输出到tXT的精度?

9个回答

比如:
图片说明
输出:87391427179357143040.00

使用setprecision(n)设置小数位数,outfile<< setprecision(6)<<temp<<"";

结合setprecision和fixed,具体你可以百度得到

for (int b = 1; b < 257; b++)
{
char temp[64];
sprintf(temp, "%lf", y[b]);
outfile <<temp << "";
}

比如:5.3f
表示无五位有效数字,小数点前两位,小数点后三位

强制转换为float 你这个是double类型的,变为float精度就少了,楼上有几位是输出精度改变,而不是你那个变量的本身改变,所以你的问题是怎么把
变量缩小精度范围。我不会这个问题。。

转化成String类型试一试。

将Y转换为string类型输出则可保持原样不变

将数据转换成float或者double型

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++ 中怎样控制数据输出精度?
# 代码很简单如下:rnrn ofstream outfile("C:\\Users\\Song\\Desktop\\20171106\\final.txt", ios::in | ios::out | ios::binary);rn rn for (int b = 1; b < 257; b++)rn rn outfile << y[b] << "";rn rn outfile.close();rn rn**我的问题是:**rn数组y内显示8.7391425897412365e19,输出到TXT文件内以后变成了8.73914e-019,想问一下怎样才能控制输出到tXT的精度?rn
输出精度
C中 printf(&amp;amp;amp;quot;%.8f&amp;amp;amp;quot;,a); C++中 cout&amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt;fixed&amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt;setprecision(8)&amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt;n;
怎样控制数据显示
我从数据库读出的数据是这样的:rnrnregion province quantityrneast bj 20rneast tj 20rnrnrn我通过datagrid取出,怎么完成下面的样式:rnrneastrnbj 20rntj 20rn或者如下:rnrneast bj 20rn tj 20rnrn
怎样控制数据溢出?
一字段的类型、长度定义为dec(7,2),输入数据时乱输一个长度超出7的数会出现数据溢出的现象,用limit控制为7位,按理由应该可以,可焦点一移开,后面就多了两位为0的小数,又溢出,控制为5位,又没理由不让人家输小数呀,请问各位有没有简单方便的方法来解决这个问题?
C++中输出精度的控制
头文件是#include &amp;lt;iomanip&amp;gt; 函数名为setprecision。 具体用法: ①设置指定的有效数字。(未加fixed前) double value=324.79213; cout &amp;lt;&amp;lt; setprecision(4)&amp;lt;&amp;lt;value; 输出结果是 324.8 ①设置小数点后的有效数字。(加fixed) cout&amp;lt;&amp;lt;fi...
MIDAS三层结构中,客户端怎样控制数据服务端
现在我想在客户端的登陆界面做一个选项 用户可以选择服务器上的后台或者是本机上的后台 一旦用户选择后 需要重新连接数据服务器的DATABASE 我在客户端该怎么去实现呢 rn 也就是说 在一个执行文件怎么去控制另一个执行文件 我现在好象在客户端不知道怎样去读服务端上的对象
c++输出精度
fixed禁止用科学计数法  setprecision 设置精度
输出精度控制
【小数位数】、【小数精度】 小数位的显示长度控制需要两步设置,其实比较简单,比如: #include &lt;sstream&gt; osgText::Text* text = dynamic_cast&lt;osgText::Text*&gt;(textNode-&gt;getDrawable(0)); std::wstringstream ss; osg::Vec3d pos = _o...
怎样控制数据窗口的横向滚动!
我想通过一个按钮控制数据窗口的横向滚动!请问有谁知道???59分送上!
输出精度的问题
int main()rnrn double a=1.0/3;rn //506635rn cout<
C++如何控制输出精度
首先添加头文件 #include &amp;lt;iomanip&amp;gt; 输出的时候多添加一条语句就可以了。 std::cout &amp;lt;&amp;lt; &quot;Case 1: &quot; &amp;lt;&amp;lt; std::setprecision(5) &amp;lt;&amp;lt; sum &amp;lt;&amp;lt; std::endl; 其中setprecision(5)在std中,需要添加命名空间。std::setprecision...
cout 输出精度的控制方法
前阵子在牛客上做了一道纯粹输出的题,输出控制小数点后的数字的个数,由输入决定。时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld题目描述 喜爱ACM的PBY同学遇到了一道数学难题,已知底数n,请你帮他准确的计算出结果a = nπ(n的π次方),结果保留小数点后x位。输入描述:第一行是一个整数t,表示测...
cout和printf控制输出精度
cout #include&amp;lt;iomanip&amp;gt; //小数点后保留两位 cout&amp;lt;&amp;lt;setiosflags(ios::fixed)&amp;lt;&amp;lt;setprecision(2)&amp;lt;&amp;lt;res&amp;lt;&amp;lt;endl; printf //小数点后保留两位 printf(&quot;%.2f\n&quot;,res); //小数点后保留两位,整数部分3位(不够的话会用空格左补...
[C++]cout输出精度控制
printf 的 %lf 只有在g++4.8及以上才支持,这里记录一下通过cout控制输出精度的方式: 头文件: 方法:setprecision(i),i为总的显示位数,如需控制精度,则在之前加上fixed,此时i表示小数点后位数。 题目来自:http://poj.org/problem?id=1862 #include #include #include #include #in
提高浮点数输出精度
#includern#includernusing namespace std;rnint main()rnrn double a;rn cin>>a;rn cout<
关于cout的输出精度?
C中printf("%5.2f\n",num);可以很方便的输出精度(小数点后保留两位小数)。但C++中用cout<
DBGrid控制数据
因为打印发票,所以要把数据库中符合要求的纪录挑选rn出来,现在的方法是放到了DBGRID控件中rn如何实现数据自动走到下一行?rnSeLectRows 这个属性好像不惯用啊?rn谢谢大家
cout控制输出精度
cout&amp;lt;&amp;lt;setiosflags(ios::fixed)&amp;lt;&amp;lt;setprecision(2);
numpy设置输出精度
使用set_printoptions设置输出的精度import numpy as np x=np.random.random(10) print(x) # [ 0.07837821 0.48002108 0.41274116 0.82993414 0.77610352 0.1023732 # 0.51303098 0.4617183 0.33487207 0.71162095...
BigDecimal 输出精度控制
BigDecimal 中rn比如 a=1.0 b=1.0000;rn输出a+b 为 2.0000 rn结果的精度和a b中精度比较高的一个相同;rnrn现在我想去掉后置0 即输出2 rn请教各位大牛,如何办rnrn本题是acm题rn[url=http://acm.hdu.edu.cn/showproblem.php?pid=1753][/url]rnrn下面是不考虑输出精度的代码, 在这个基础上修改即可rn[code=Java]import java.io.*;rnimport java.math.BigDecimal;rnimport java.util.Scanner;rnrnpublic class Main rn public static void main(String[] args) throws IOException rn Scanner in = new Scanner(System.in);rn BigDecimal a, b;rn while(in.hasNext()) rn a = in.nextBigDecimal();rn b = in.nextBigDecimal();rn System.out.println(a.add(b));rn rn rn[/code]
控制数据 格式
SqlCommand cmd2 = new SqlCommand(strsqlnum, objconn);rn SqlDataReader sdr2 = cmd2.ExecuteReader();rn rn sdr2.Read();rn this.LabTotalNum.Text = "总计人数:" + sdr2["TPeopleNum"].ToString();rnrnrn 显示出来总是 13.00总是带着。00,怎么才能消掉显示13
在IBX中如何控制数据的FETCH
在IBX中如何控制数据的FETCHrn如FETCH数量,BeforeFetchData,AfterFetchData等
C++输出精度控制
C++输出精度控制源代码解释说明 源代码 #include #include using namespace std; int main() { double pi = 3.1415926; cout &lt;&lt; setiosflags(ios::fixed) &lt;&lt; setprecision(2) &lt;&lt; pi &lt;&lt; endl; system(“pause”...
Java控制浮点数输出精度
参考:更为详细 主要2种方式:String.format和DecimalFormat.format import java.text.DecimalFormat; public class Main{ public static void main(String[] args){ double pi=3.142; //3.14 System.out...
如何判断输出精度?
有个求级数的题,要求有输出精度,怎么判断?
请问如何实现输出精度.
如现在有个DOUBLE的数为2548.32156rn我只想输出精确到2个小点,即输出2548.32rn请问如何实现.谢谢!
C++ 输出格式 输出精度
一些关于小数点的问题,ppt格式,相互学习,希望有用!!
输出精度怎么控制
#include rnusing namespace std;rnint main()rnrn double s,t;rn int n,i;rn while(cin>>s>>n)rn rn t=s;rn for(i=1;i<=n-1;i++)rn s*=t;rn cout<
关于double的输出精度
两个double类型的数相加时会出现小数点后有许多位数的情况,如2.2+4.4=6.60000005rn我用NumberFormat限定了小数点的位数,发现并没有起作用rn以下是我编写的复数相加rnpublic class complex rn public static void main(String args[])rn rn [color=#FF0000]NumberFormat df=NumberFormat.getNumberInstance();rn df.setMaximumFractionDigits(1);//设置小数点后面尾数为1[/color] Scanner in = new Scanner(System.in);rn double r11 = in.nextDouble();rn double v11 = in.nextDouble();rn double r22 = in.nextDouble();rn double v22 = in.nextDouble();rn complexnum a = new complexnum(r11,v11);rn complexnum b = new complexnum(r22,v22);rn if(a.getSubVertual(b)>=0)rn JOptionPane.showMessageDialog(null,"a="+a.getReal()+"+"+a.getVertual()+"*i\n"+rn "b="+b.getReal()+"+"+b.getVertual()+"*i\n"+rn "a+b="+df.format(a.getAddReal(b))+"+"+df.format(a.getAddVertual(b))+"*i\n"+rn "a-b="+df.format(a.getSubReal(b))+"+"+df.format(a.getSubVertual(b))+"*i\n");rn if(a.getSubVertual(b)<0)rn JOptionPane.showMessageDialog(null,"a="+a.getReal()+"+"+a.getVertual()+"*i\n"+rn "b="+b.getReal()+"+"+b.getVertual()+"*i\n"+rn "a+b="+a.getAddReal(b)+"+"+[color=#FF0000]a.getAddVertual(b[/color])+"*i\n"+rn "a-b="+a.getSubReal(b)+"-"+Math.abs(a.getSubVertual(b))+"*i\n");rn rnrnclass complexnumrnrn private double real;rn private double vertual;rn public complexnum(double r,double v)rn rn real = r;rn vertual = v;rn rn public double getReal()rn rn return real;rn rn public double getVertual()rn rn return vertual;rn rn public double getAddReal(complexnum m)rn rn return real+m.real; rn rn public double getAddVertual(complexnum m)rn rn return vertual+m.vertual;rn rn public double getSubReal(complexnum m)rn rn return real-m.real;rn rn public double getSubVertual(complexnum m)rn rn return vertual-m.vertual;rn rn
怎样控制数据窗口的列宽不让改变?
想请问各位高手两个问题:rn1、怎样控制数据窗口的列宽不让改变?rn2、我用数据窗口(grid)用于打印,在上面放了一矩型用于遮住 grid 中的线条,再放一标题。这样如列宽不变的话没有问题,如果列宽一拉大时,因为矩型框不会随着变大,所以又会出现线条。曾在网上看到说可以让矩型框也随着变大,各位如果知道的话麻烦指教,先谢谢啦!
printf中%e输出精度,求指导
实在不明白%e,求指导rn代码如下rn#include rnmain()rnrnfloat x=314.15926;rndouble y=378.12345678912;rnprintf("x=%e\n",x);rnprintf("y=%11E\n",y);rnrn为什么输出结果rnx=3.141593e+002 而不是书上的3.14159e+02rny=3.781235e+002 明明指定11位了为什么输出还是13位rn谢谢了
C++输出精度(precision)控制,格式化输出
使用cout对象的成员 setprecision() setf() width() fill() flags(ios::fixed) #include&amp;lt;iostream&amp;gt; using namespace std; int main() { double a=3.1415926; double c=66.666666; cout.precision(3); ...
工业控制数据的直观显示
利用各种对话框控件,对数据进行直观显示,很漂亮的用户界面
怎么控制数据的长度呀?
比如说:rn3.0开方后为:1.7320508075688772,怎样让他显示为:1.73205080呀rn
ASP如何控制数据小数位
<%=rs("profit")/rs("sellmoney") %>rn结果是28.0648648648649rn我只想要28.0649这样的结果.用个什么函数实现.谢谢!
如何控制数据的有效性?
同样是在scott模式下对emp表进行操作。rn1)对于emp表要求控制每个部门的工资总和不能超过20000元,如果超过则应当拒绝其rn 操作。编程实现这个功能。rn
DBGRID控制数据输入问题?
我要在DBGRID里面实现输入数据,当我选择其中的一条记录的时候该记录可以进行修改,其他为不可以修改状态;当我输入完第一个数据内容后离开第一列,进行第二个数据内容输入之前要判断数据是否有重复,当输入完最后一条记录的时候要判断记录是否有空的没输入;如果是增加新的记录,只有最后的一条记录可以进行编辑,其他的都是不可以编辑状态,输入完第一个数据内容后离开第一列,进行第二个数据内容输入之前要判断数据是否有重复,当输入完最后一条记录的时候按下回车键要判断记录是否有空的没输入。rn请各位帮助解决????解决了在开贴个分!!!!!!
如何手动控制数据的更新?
我用TDBGrid1(或者别的数据感知组件)连接TADODataSet1,TADODataSet1连接一个ACCESS数据库表。默认情况下,如果程序执行时修改TDBGrid1中的数据,ACCESS数据库表中的相应字段会被随之修改。我希望TDBGrid1中的数据能被修改,但先并不更新数据库,当点击一个按钮之后再将TADODataSet1中的数据保存入数据库,该如何进行?
在PB内控制数据的传输?
具体目的是这样的:rn有一台服务器和多台工作站,由于线路占用资金太大,它们之间一天只能有一部分时间连在一起,在PB内怎样可以在这部分时间内让各工作站的数据传往服务器呢?在PB内手工操作也行。请您指教!谢谢!!rnrn这个问题上行我已经提过,有此回答应该是可以用的,但我不会用,他们是这样回答的rnexport ...rninport ...rn以上这样对我来说有点难理解.rn我是新手,请您详尽一点,非常感谢!!
单选框控制数据窗口问题
我想做这样一个东西:rn两个单选框rnoA o Brn两个下拉数据窗口dw_xl(下拉数据窗口是用的external数据源 freedom格式eidt里加的dddw)rn选A时,数据窗口控件里是dw_arn选B时,数据窗口控件里是dw_b.rn就么一个很简单的东西,可是我作不出来,请大家看看rn我在rb_1的clicked事件里写的代码如下:rndw_xl.dataobject="dw_a"rnDataWindowChild dwcrndw_xl.getchild("fylb",dwc) rndwc.settransobject(sqlca)rndwc.retrieve()rnif dwc.rowcount()=0 thenrn dwc.insertrow(0)rnend ifrndw_xl.retrieve()rndw_xl.setfocus()rnrb_2里是一样的,只不过dw_xl.dataobject="dw_b"rndw_xl里的constructor事件里写的rnsettransobject(sqlca)rndw_xl.insertrow(0)rn请问哪里错的,正确的该怎么写?谢谢
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview