iOS 的小数格式

DecimalFormat for iOS

我正在 objective c 中移植 java class,我在 Android java 中有此功能:

private boolean pointInArea(LLACoordinate A, LLACoordinate B, LLACoordinate C, LLACoordinate D, LLACoordinate P) 
{

    double[] xyA = getXYbyLLA(A);
    double[] xyB = getXYbyLLA(B);
    double[] xyC = getXYbyLLA(C);
    double[] xyD = getXYbyLLA(D);
    double[] xyP = getXYbyLLA(P);

    double areaABC = getArea(xyA, xyB, xyC);
    double areaACD = getArea(xyA, xyC, xyD);

    double areaPAB = getArea(xyP, xyA, xyB);
    double areaPBC = getArea(xyP, xyB, xyC);
    double areaPCD = getArea(xyP, xyC, xyD);
    double areaPDA = getArea(xyP, xyD, xyA);

    DecimalFormat df = new DecimalFormat("#.#########");

    double areaABCD = Double.valueOf(df.format(areaABC+areaACD).replaceAll(",","."));
    double areaABCDP = Double.valueOf(df.format(areaPAB+areaPBC+areaPCD+areaPDA).replaceAll(",","."));

    return (areaABCD == areaABCDP);
}

我在 Objectice C 中创建了这个 class:

- (BOOL) pointInArea:(metaio::LLACoordinate)a B:(metaio::LLACoordinate)b C:(metaio::LLACoordinate)c D:(metaio::LLACoordinate)d P:(metaio::LLACoordinate)p
{

NSMutableArray *xyA = [self getXYbyLLA:a];
NSMutableArray *xyB = [self getXYbyLLA:b];
NSMutableArray *xyC = [self getXYbyLLA:c];
NSMutableArray *xyD = [self getXYbyLLA:d];
NSMutableArray *xyP = [self getXYbyLLA:p];

double areaABC = [self getArea:xyA XYB:xyB XYC:xyC];
double areaACD = [self getArea:xyA XYB:xyC XYC:xyD];

double areaPAB = [self getArea:xyP XYB:xyA XYC:xyB];
double areaPBC = [self getArea:xyP XYB:xyB XYC:xyC];
double areaPCD = [self getArea:xyP XYB:xyC XYC:xyD];
double areaPDA = [self getArea:xyP XYB:xyD XYC:xyA];

}

但我不知道如何在objective c中打开这段代码:

DecimalFormat df = new DecimalFormat("#.#########");

    double areaABCD = Double.valueOf(df.format(areaABC+areaACD).replaceAll(",","."));
    double areaABCDP = Double.valueOf(df.format(areaPAB+areaPBC+areaPCD+areaPDA).replaceAll(",","."));

有人可以帮助我吗?非常感谢

正在执行 NSNumberFormatter 以根据需要格式化输出。可以修改df对象的属性值:

NSNumberFormatter *df = [[NSNumberFormatter alloc] init];

df.decimalSeparator = @".";
df.minimumFractionDigits = 1;
df.maximumFractionDigits = 5;

NSString *formattedString = [df stringFromNumber:[NSNumber numberWithDouble:areaABC+areaACD]];