【发布时间】:2012-04-19 17:53:01
【问题描述】:
作为计算器应用程序的一部分,我正在尝试使用 sigma 表示法来实现用途。但是,它打印出来的结果始终是小数,其余的并不重要。我只是想将小数更改为分数。
我已经有了 reduce 函数,我遇到的问题是从这样的小数:'0.96875' 到它的小数,'31/32'
谢谢!
PS:我已经研究了几乎所有的东西,而对于我的生活,我无法弄清楚这一点。在这一点上,我所需要的只是如何从中取出小数,然后我可以减少它。
这是我的 reduce 方法:
-(void)reduce {
int u = numerator;
int v = denominator;
int temp;
while (v != 0) {
temp = u % v;
u = v;
v = temp;
}
numerator /= u;
denominator /= u;
}
【问题讨论】:
-
我想目标是“字符串表示”,尽管表示分数的数据类型的名称通常是“Rational”(参见Rational Number)。使用它可能有助于优化搜索,例如谷歌给了我RCRationalNumber,其中有
initWithDouble。 -
这是一个 related 问题:stackoverflow.com/questions/5552537/… 显示了如何在 C 中执行此操作。但是,我不会作为重复项关闭,因为可能存在“更多 Obj -C 方式”。但是,接受的答案非常适合链接。
-
我在问之前查看了上面的那个问题,这正是我问的原因,我想看看“更多的 obj-c 方式”
标签: objective-c math rational-numbers