【发布时间】:2022-01-16 00:06:39
【问题描述】:
我在 macOS 上,objective-c。不是 swift,不是 iOS。
为了传递一个浮点数,我暂时需要在某个点使其成为一个对象:
NSNumber* floatNumber = @.5;
// Other stuff ...
float myFloat = [floatNumber floatValue]; // --> (float) 0.5
但是,与上面的操作相同
NSNumber* floatNumber = @.4;
// Other stuff ...
float myFloat = [floatNumber floatValue]; // --> (float) 0.400000006
这会破坏其余部分,因为我需要相同的浮点值 0.4
我已经尝试过四舍五入
floorf([floatNumber floatValue] *100)/100; // --> (float) 0.400000006
谁能解释一下这种行为并告诉我如何解决它
【问题讨论】:
标签: objective-c numbers precision