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]];
我正在 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]];