是否有工具可以知道某个值是否具有精确的二进制表示形式作为浮点变量?

前端之家收集整理的这篇文章主要介绍了是否有工具可以知道某个值是否具有精确的二进制表示形式作为浮点变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的C API有一个函数,它将double作为输入.只有3或4个值是有效输入,所有其他值都是无效输入和拒绝.

我想检查是否可以准确表示所有有效输入值,以便我可以避免epsilon检查以提高可读性.

是否有一个工具(最好在命令行上)可以告诉我十进制值是否具有精确的二进制表示作为浮点值?

解决方法

这是一个完全符合您要求的 Python片段;它需要 Python 2.7或Python 3.x. (早期版本的Python对浮点转换不太仔细.)
import decimal,sys
input = sys.argv[1]
if decimal.Decimal(input) == float(input):
    print("Exactly representable")
else:
    print("Not exactly representable")

用法:在名称’exact_representable.py’下保存脚本后,

mdickinson$python exactly_representable.py 1.25
Exactly representable
mdickinson$python exactly_representable.py 0.1
Not exactly representable
mdickinson$python exactly_representable.py 1e22
Exactly representable
mdickinson$python exactly_representable.py 1e23
Not exactly representable
原文链接:https://www.f2er.com/c/119787.html

猜你在找的C&C++相关文章