在 Objective-C 中将小数转换为分数?
我试图将小数点后的所有内容显示为分数。找不到关于 Objective-c 的太多关于如何实现这一点的信息。我使用 double 来格式化变量,不确定这是否重要。这就是我格式化答案输出的方式:[theTextField setText:[NSString stringWithFormat:@"%f''", (myVariable)]];
这显示为十进制,但实际上会喜欢它作为整数和分数(即)7 1/2 而不是 7.5000。提前谢谢您!
更新:5/13/2011
嗯,我让它显示 7 1/16,但是数学上的一些东西关闭了。因为即使改变被除的值,它也不会改变 1/16。我这里哪里出错了?如果有人真的能让这个正常工作,请完整地发布它是如何完成的。这应该很简单,但实际上并不简单,而且太耗时。请完整地发布它是如何完成的。谢谢。
更新: 如果这个答案对您不起作用,请查看我的其他帖子,这有效! 将小数转换为分数
I am trying to take everything after the decimal and display it as a fraction. Couldn't find much for objective-c on how to accomplish this. I am using double
for my formatting of variables, not sure if that would matter or not. This is how I am formatting for output of my answer:[theTextField setText:[NSString stringWithFormat:@"%f''", (myVariable)]];
This displays ok as decimal, but would really like it as a whole number and fraction (ie.) 7 1/2 instead of 7.5000. Thank you in advanced!
Update:5/13/2011
Well, I got it to display 7 1/16, but something with the math is off. Because it won't change from 1/16 even by changing the values that are getting divided. Where am I going wrong here? If anyone can actually get this to work correctly please post fully how its done. This is something that should be simple but isn't and way too time consuming. Please post fully how it is done. Thanks.
Update:
If this answer isn't working for you check out my other post, this works! Convert decimals to fractions
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Objective-C 基本上使用纯 C 进行所有原始数学运算。
也就是说,您将在另一个问题的答案中找到所有必要的信息(以及 C 代码):
如何将浮点数转换为人类可读的分数?
(具体来说这个答案 具有实际的 C 代码。)
这是所述算法的快速 C 函数包装器:
像这样调用它:
打印此:
最后但并非最不重要的一点是让我们看看如何将新制作的分数放入文本中字段:
预期输出:
“7 1/2”
,实际输出:“7 499/999”
有关为什么会发生这种情况的一些信息,请参阅相关问题的答案:如何将浮点数转换为人类可读的分数?
Objective-C uses pure C for basically all primitive mathematical operations.
This being said you'll find all necessary information (along with C code) in the answers of this other question:
How to convert floats to human-readable fractions?
(Specifically this answer featuring actual C code.)
Here is a quick c function wrapper of said algorithm:
Calling it like this:
Prints this:
Last but not least let's see how we get our newly crafted fraction into out text field:
Expected output:
"7 1/2"
, actual output:"7 499/999"
For some info on why this can happen see this answer to a related question: How to convert floats to human-readable fractions?
我编写了代码将小数转换为尽可能小的分数。这效果非常好。
调用方法为:
I have written code to convert decimal to its lowest possible fraction. This works perfectly well.
call method as: