【发布时间】:2021-06-02 20:35:05
【问题描述】:
如果值为 1.66,如何在目标 c 中舍入 double 值,将值显示为 1.55,如果计算值更高,则缺少一个点值,这会产生影响?
self.priceLabel.text = [NSString stringWithFormat:@"%0.2f",totalPrice];
我使用过其他多种东西,包括格式化程序,但这个问题仍然存在
计算器的计算结果显示为 293.76,但通过这种方式显示的值为 293.75,我需要该值为 293.76
【问题讨论】:
-
??? “.2f”在大多数情况下应该正确舍入 - 您是否可能意味着您还想对值本身进行舍入并在后续计算中使用它而不是多精度值?
-
@skaak 我只是想在某些情况下对值进行四舍五入,但值是正确的,但是当涉及到 .75 时,这会导致其中缺少 .1 值我该如何解决这个问题?
-
您能否提供一个可重现的完整示例,在其中声明一个双精度变量、赋值、执行舍入,并向我们展示出了什么问题?
-
@AndreasOetjen
totalPrice= totalPrice+([cart.quantity doubleValue]*[cart.price_vat doubleValue]);我已经使用了这个并将它分配给我的标签,但是当价格为 293.76 时,它显示 293.75self.priceLabel.text = [NSString stringWithFormat:@"%0.2f",totalPrice]; -
@iOSAppTester - 我认为你需要仔细检查你的数学。这个例子 - pastebin.com/3tVmwde9 - 工作正常。它生成了
293.76的double(实际值真的是293.75999999999999,因为是浮点数),NSString *s = [NSString stringWithFormat:@"%0.2f", totalPrice];生成的字符串符合预期... "293.76"
标签: ios objective-c iphone objective-c-category objective-c-2.0