iphone - nombre - javascript tofixed




Valeur double ronde à 2 décimales (8)

J'ai une double valeur comme 22.368511 Je veux arrondir à 2 décimales. c'est-à-dire qu'il devrait retourner 22.37

Comment puis je faire ça?


Comme dans la plupart des langues, le format est

%.2f

vous pouvez voir plus d'exemples here

Edit : J'ai aussi obtenu ce si vous êtes préoccupé par l'affichage du point dans les cas de 25,00

{
    NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
    [fmt setPositiveFormat:@"0.##"];
    NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);
    NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.3]]);
    NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.0]]);
}
2010-08-22 15:04:10.614 a.out[6954:903] 25.34
2010-08-22 15:04:10.616 a.out[6954:903] 25.3
2010-08-22 15:04:10.617 a.out[6954:903] 25

J'allais aller avec la réponse de Jason mais j'ai remarqué que dans Ma version de Xcode (4.3.3) je ne pouvais pas faire ça. donc après un peu de recherche j'ai trouvé qu'ils avaient récemment changé les méthodes de classe et ont enlevé tous les vieux. alors voici comment je devais le faire:

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

[fmt setMaximumFractionDigits:2];
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);

Pour supprimer les décimales de votre double, regardez cette sortie

Obj. C

double hellodouble = 10.025;
NSLog(@"Your value with 2 decimals: %.2f", hellodouble);
NSLog(@"Your value with no decimals: %.0f", hellodouble);

La sortie sera:

10.02 
10

Swift 2.1 et Xcode 7.2.1

let hellodouble:Double = 3.14159265358979
print(String(format:"Your value with 2 decimals: %.2f", hellodouble))
print(String(format:"Your value with no decimals: %.0f", hellodouble))

La sortie sera:

3.14 
3

Utilisez NSNumber * aNumber = [NSNumber numberWithDouble: number]; au lieu de NSNumber * aNumber = [NSNumber numberWithFloat: number];

+(NSString *)roundToNearestValue:(double)number
{
    NSNumber *aNumber = [NSNumber numberWithDouble:number];

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [numberFormatter setUsesGroupingSeparator:NO];
    [numberFormatter setMaximumFractionDigits:2];
    [numberFormatter setMinimumFractionDigits:0];
    NSString *string = [numberFormatter stringFromNumber:aNumber];        
    return string;
}


Vous pouvez utiliser le code ci-dessous pour le formater à deux décimales

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

[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:22.368511]];

NSLog(@"Result...%@",numberString);//Result 22.37

Swift 4:

let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.roundingMode = .up

let str = String(describing: formatter.string(from: 12.2345)!)

print(str)

 value = (round(value*100)) / 100.0;

[label setText:@"Value: %.2f", myNumber];




cocoa-touch