如何判断一个 double 有几位?

查看 79|回复 4
作者:tun   
double 的取值范围是 0.000~001 到 1000~00 ,有几个 0 取决于系统,现在需要判断这个 double 有几位,既
1000->  3
1001->  3
12002-> 4
0.01->  2
0.007-> 3
我最初的打算通过对数,但发现存在问题
int main(){
    double A = 0.001;
    double B = 0.0001;
    int A1 = static_cast[i](::fabs(log10(A)));
    int B1 = static_cast[i](::fabs(log10(B)));
    std::cout
上面这段代码在 ubuntu20.04 上,使用 G++编译后运行,结果为
A1: 2
B1: 4
我在 win10 上使用 VS2019 编译,结果为 A1:3 B1 :4 。。。
所以我想问下有没有更好的办法来判断?

int, std, double, cout

agagega   
起猛了 看成 Diablo 有几位
hello2090   
还是没太看懂你说的 double 有几位是什么意思,1000 (如果是十进制)不是 4 位吗? 1.20012 按楼主的意思应该算几位呢?
th00000   
一直 X10 ,直到结果转为整数再转为 double, 是一样的
th00000   
@tun #1 头像太具有迷惑性!
您需要登录后才可以回帖 登录 | 立即注册

返回顶部