在Xcode/Objective-C for iPhone。
我有一个浮点值为0.00004876544。如何让它显示在第一个有效数字后的小数点后两位?
例如,0.00004876544将读取0.000049
我没有通过编译器来检查它,但这里是算法的基本列表(从答案转换为这个问题):
-(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函数。