c***u 发帖数: 843 | 1 碰到了一个问题,就是从txt文件中读取数据,数据是两列scientific notation的。用
下面的方法读取,出现了精度丢失方面的问题.
ifstream infile;
.....
....
string line;
long double x;
long double y;
while(getline(infile,line))
{
stringstream stream(line);
stream>>x>>y;
...
...
}
数据是scientific notation的,***********E**,E前面的数字很长,我个人觉得是,
在stream>>x>>y这一步进行string到long double的type conversion的时候,精度丢失
了。 譬如本来的data是0.00179,结果读出来的x变成了0.0018。
对于这个问题应该怎么解决啊。。期待牛人。 | z***e 发帖数: 5393 | 2 自己define一个处理高精度的class/struct,然后overload >> 和其它需要的operator.
处理高精度(或者说需要很多bits的big number)都要自己定义的,比如处理1024
bits的secret key之类。
【在 c***u 的大作中提到】 : 碰到了一个问题,就是从txt文件中读取数据,数据是两列scientific notation的。用 : 下面的方法读取,出现了精度丢失方面的问题. : ifstream infile; : ..... : .... : string line; : long double x; : long double y; : while(getline(infile,line)) : {
| n********n 发帖数: 221 | | c***u 发帖数: 843 | 4 我按照网上的关于precison的方法试了一下,不过好像还是不行。不知道是不是我的用
法有问题。
【在 n********n 的大作中提到】 : 不是有precision成员函数吗
|
|