Floating point 我需要从浮点数中选择某些数字。可能吗?如果是,如何进行?

Floating point 我需要从浮点数中选择某些数字。可能吗?如果是,如何进行?,floating-point,vhdl,Floating Point,Vhdl,例如: 0.6345482635429 我想像在select(263)中一样选择从(10^-6)到(10^-9)的数字并保存它。我在Matlab中应用了这个。我正在尝试在VHDL中应用它。该示例是十进制透视图,而不是im使用的浮点格式 是否可以将浮点数转换为十进制,然后从十进制格式中选择所需的数字 我正在应用32位浮点格式。我不知道如何在VHDL中为浮点数选择相同的数字范围 我还没有尝试任何东西,因为我本来不知道如何去做 谢谢大家! 32位浮点对象不可能保留确定具有九位十进制数字的任意数字的位数

例如: 0.6345482635429

我想像在select(263)中一样选择从(10^-6)到(10^-9)的数字并保存它。我在Matlab中应用了这个。我正在尝试在VHDL中应用它。该示例是十进制透视图,而不是im使用的浮点格式

是否可以将浮点数转换为十进制,然后从十进制格式中选择所需的数字

我正在应用32位浮点格式。我不知道如何在VHDL中为浮点数选择相同的数字范围

我还没有尝试任何东西,因为我本来不知道如何去做


谢谢大家!

32位浮点对象不可能保留确定具有九位十进制数字的任意数字的位数所需的信息(具有一位指数或具有两位指数且无符号位的退化浮点格式除外)

浮点格式表示数学数字,而不是数字。特别是,二进制格式不表示十进制数字。小心地,可以使用浮点计算各种数学运算产生的十进制数字,但这需要知识和良好的设计。通常,这是一个坏主意,有更好的解决方案。对于VHDL来说,这可能是一个非常糟糕的主意。对于使用32位浮点的9位数字,这是不可能的,因为以正常32位格式显示的信息不足以保留9位十进制数字,更不用说用它们进行计算了

IEEE-754基本32位二进制浮点格式具有24位有效位。224=16777216,不是偶数的八位数字。如果所表示的数字大约为.634(如示例中所示),则有效位的高位对应于2−1,低位对应于2−24,约为.0000000 596046。这不足以保留小数点后第七位的数字


如果您想使用多个32位浮点对象来表示数字或数字,一些扩展精度技术可能会奏效。但是,很可能有更好的解决方案,可能是直接表示十进制数字字符串的解决方案。

我是否正确理解您有一个表示数字的字符串。或者你有一个浮点数(计算结果),你想从中得到这些值吗?浮点数,计算结果你想让它四舍五入吗?不,我不想让它四舍五入我同意你关于浮点数的说法,但您始终可以将其转换为字符串并执行字符串操作以提取请求的信息。如果该信息在某种程度上有意义,则这是一个完全不同的问题,这取决于我们没有相关信息的问题。@kvantour:问题不是将值转换为十进制,而是所需信息不存在。所需信息存在。具有32位的二进制数可以用大约100位的十进制数字表示(
2^-24
大约有那么多的十进制数字)。在C语言中,
printf
可以将浮点值转换为字符串,然后可以对其进行操作。所有这些十进制数字是否都有任何实际信息是值得怀疑的。例如,OP显示的数字是
0.6345482635429
,但最接近的浮点数的十进制表示形式是
0.63454826354289994849722233993816189467906951904296875
,当您将该数字作为字符串时,您可以快速提取OP请求的信息。但如前所述,任何关于10^-7的数字实际上都是由表示从10^0到10^-7的所有十进制数字的所有位生成的,因此表示10^-9的十进制数字实际上是所有其他数字的结果。