- 主题:qt和C++问题
把一个string的子串转成浮点数 不丢小数位
比如一个长串 sfaewfadsf1305031473.158420hklhlkh
中间有数据部分 定位到数据部分后可以用QString::fromStdString().substr正常截取数据部分输出
>> QStr: "1305031473.190828"
但是转换时小数位全部变为0
>> QStr: 1305031424.000000
>> QStr: 1305031424.000000
>> QStr: 1305031424.000000
qDebug() << " >> QStr: " <<fixed << qSetRealNumberPrecision(6)<< QString::fromStdString().toFloat();
然后试着用atof(.c_str())这种也失败了
请指教
--
修改:scanworld FROM 58.128.3.*
FROM 58.128.3.*
后来toDouble了 float不行
【 在 dormouseBHU 的大作中提到: 】
: 为啥不 toDouble? float 应该就只有10位精度,表示不出那么多位。
--
FROM 123.122.153.*
我主要是没数过 视觉上感觉没那么多数 后来数了一下就toDouble了 浪费了不少时间
【 在 hanjiamajia 的大作中提到: 】
:
: float 一共32位,1位符号,8位指数,23(还有一位隐含的1)位来保留数字
: 一共24位,2^24 =16xxxxxx只能保留7位精度(10^7 < 16xxxxxx < 10^8)
: ...................
--
FROM 123.122.153.*
不写默认科学计数
【 在 hgoldfish 的大作中提到: 】
: 你不写这个的话,会输出什么?
: qSetRealNumberPrecision(6)
:
--
FROM 123.122.153.*
这个没什么影响 debug时候也可以看到值 只是输出时看不到全部无法分辨
【 在 dormouseBHU 的大作中提到: 】
: 科学计数怎么了?有什么影响吗
--
FROM 123.122.158.*