objective-c - 在 objective-c 中,我想将 float 分开以进行进一步的数学工作

标签 objective-c math xcode4 decimal

我正在设置一个计算器,它将在用户输入后生成一个 float 。举个例子:如果生成的答案是 1.75,则实际上代表 1.75 小时。我想把答案分成两部分阅读1小时。 45 分钟,这比 0.75 小时更方便用户使用。

所以我需要能够删除小数点之前的整个数字(在本例中为“1”),以使用 .75 获取变量值——类似这样:

mIn = (.75 * 60) 这将为我提供 45 分钟的值以放入我的...

[NSString stringWithFormat:@"@% hr.@% min", hRs, mIn]; 语句类型

对此的任何帮助将不胜感激。

最佳答案

您几乎肯定不想使用float来存储用户输入的数字,特别是对于计算器而言。这将导致十进制/二进制舍入错误,让你发疯。您希望使用 NSDecimalNumber 来完成此类工作。

此处的其他答案也可以,但您想将 floor() 替换为 decimalNumberByRoundingAccordingToBehavior:。您将使用舍入模式为 NSRoundDownNSDecimalNumberHandler 和适当的scale(根据您的目的,可能为 2 或 3)。

关于objective-c - 在 objective-c 中,我想将 float 分开以进行进一步的数学工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932776/

相关文章:

c++ - 执行函数时出现问题

ios - CorePlot 多个散点图内存消耗巨大

math - 简单的基于物理的运动

ios - 当我从 xcode 中的外部区域拖动时,如何使 UIButton 启用触摸?

java - 使用 Java BigDecimal 仍然不能正确解决

javascript - 计算三 Angular 形 Angular 时的小数舍入问题

iphone - Xcode 4 "Transferring package"删除应用程序后速度异常缓慢

iphone - 触摸后,Objective C 注释 View 显示缓慢

objective-c - 清除 NSTableView 内容

iphone - NSTimer失效后后台线程NSRunloop运行不退出!为什么?