如何确定C++中的文件中的字符串是float还是double?

use*_*046 3 c++ floating-point double parsing

我想解析文件,并确定如果我读过的数量floatdouble.我解析的文件是Matrix Market格式的矩阵之一(如下所示:https://sparse.tamu.edu/HB/1138_bus).

基本上输入按此顺序int int float (or double):

1138 1138 2596
1 1 1474.779
5 1 -9.017133
563 1 -5.730659
2 2 9.136654
10 2 -3.405995
Run Code Online (Sandbox Code Playgroud)

等等...

当我读取浮点数时,我想确定数字是否可以存储float或者需要大的数据,比如double.

是否有一些最好的阅读方式,同时确定字符串是否可以存储floatdouble

dbu*_*ush 9

读取十进制值的问题在于,通过查看它们是否float具有足够的精度来判断它们并不容易.

例如,1.0009765625将完全修复,float但1.1不完全适合double(或任何二进制浮点类型).

double在读取浮点类型时,最好总是使用. float除非你有非常具体的理由这样做,否则一般应该避免.