在iPhone的Xcode / Objective-C中。
我有一个值为0.00004876544的浮点数。如何在第一个有效数字后显示两位小数?
例如,0.00004876544将读为0.000049。
答案 0 :(得分:4)
我没有通过编译器对其进行仔细检查,但是这里是算法的基本要点(从答案转换为this question):
-(float) round:(float)num toSignificantFigures:(int)n {
if(num == 0) {
return 0;
}
double d = ceil(log10(num < 0 ? -num: num));
int power = n - (int) d;
double magnitude = pow(10, power);
long shifted = round(num*magnitude);
return shifted/magnitude;
}
要记住的重要一点是Objective-C是C的超集,因此在C中有效的任何东西在Objective-C中也是有效的。此方法使用math.h
中定义的C函数。