Anu*_*rma 2 c c++ floating-point type-conversion
我有一个非常大的浮点数(大约20位),我想检查它是否是一个整数.例如,如果我有一个像154.0的数字那么它是一个整数,而154.123123不是一个整数.
我需要检查非常大的浮点数(20位或更多),这意味着我不能先将它转换为long long数据类型,看看它们是否相同.请把我推向正确的方向.我只会欣赏C/C++中的答案.谢谢!:)
AnT*_*AnT 16
嗯,什么是"巨大的"?如果数字在某种意义上是巨大的,即数字的位数大于浮点数的尾数所代表的数字,那么浮点数总是一个整数.
例如,IEEE 754双精度格式具有52位尾数,足以容纳约16个十进制数字.如果你的数字有20个十进制数字,那么任何将这些数字压缩成a的尝试double
都会导致舍入,从而有效地将你的数字变成"整数".
你提到你的数字太大而不适合long long
数据类型.如果您指的是64位long long
数据类型,那么它会自动表示您的数字太大,以至于当用典型double
类型表示时它们将永远不会有任何小数部分,即如果用double
值表示它们将始终为"整数" .
PS你是否正在使用一些带有超宽尾数的异域浮点型?
归档时间: |
|
查看次数: |
599 次 |
最近记录: |