是否有任何数学或算法方法将浮点数分成两部分(之前和之后)点。
例子:
number=456.789
before=456
after=0.789
我不想要任何代码,因为我可以用任何编程语言做到这一点。我想要一个通用算法,最好使用算术或其他此类运算符。
是否有任何数学或算法方法将浮点数分成两部分(之前和之后)点。
例子:
number=456.789
before=456
after=0.789
我不想要任何代码,因为我可以用任何编程语言做到这一点。我想要一个通用算法,最好使用算术或其他此类运算符。
这一切都取决于对浮点值可用的操作:
floor
,ceil
那么你可以使用其中之一来获得整数部分,并使用减法来获得小数部分。.
或,
),尽管科学记数法需要额外的工作来处理。我通常会执行以下操作来获得您的要求:
double number=456.789;
int before= number; //This type cast is equivalent to floor(number)
double after=number-before;
所以获取给定浮点数的下限是我们正在执行的主要任务,其中 floor 方法只返回不大于输入数的最大整数。这很可能通过利用内存中的浮点表示和一些语言级别的操作来完成(您不能在浮点数中执行正常的按位运算,因为它没有定义)。所以AFAIU,如果你不想使用地板/打字,你基本上注定要失败。