将 double 转换为 NSNumber,即使有 0 也保留小数部分
Convert double to NSNumber keeping decimal part even if there are 0s
我下载了一些包含价格的 Json 数据,下载的价格是双倍的,例如,如果我有 10.50,分配给我的变量的值将是 10.5,我怎样才能保留 0在第一个小数之后?
这是我用来创建 NSNumber 的代码:
NSNumber *numPrice = jsonElement[@"Price"]; //the json is 10.50 but numPrice becomes 10.5
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];
NSString *numberString = [formatter stringFromNumber:numPrice];
任何尾随零都只是显示问题,它们不是数字的一部分。
你不能。当 JSON 文档包含 10.50 时,它 是 数字 10.5。 JSON 文档中的 10.5000000 或 10.50 或 10.5 之间没有区别。它们绝对是百分之一百相同的东西。
您可以随意以任何您喜欢的方式显示此号码。
你不能,如果你想在将数字保存为 NSNumber 后显示带两位小数的数字,你必须做的事情是将它们打印为带两位小数的浮点数。类似的东西:
NSNumber *numPrice = jsonElement[@"Price"]; //the json is 10.50 but
NSString *numberString = [NSString stringWithFormat:@"%0.2f", numPrice.floatValue];
出于输出目的,您可以将 NSNumberFormatter
设置为恰好有 2 位小数,例如
[formatter setMinimumFractionDigits:2];
[formatter setMaximumFractionDigits:2];
这是为了显示两位小数。如果可能的话,您的 NSNumber 在内部当然会以一位数字存储。
我下载了一些包含价格的 Json 数据,下载的价格是双倍的,例如,如果我有 10.50,分配给我的变量的值将是 10.5,我怎样才能保留 0在第一个小数之后?
这是我用来创建 NSNumber 的代码:
NSNumber *numPrice = jsonElement[@"Price"]; //the json is 10.50 but numPrice becomes 10.5
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];
NSString *numberString = [formatter stringFromNumber:numPrice];
任何尾随零都只是显示问题,它们不是数字的一部分。
你不能。当 JSON 文档包含 10.50 时,它 是 数字 10.5。 JSON 文档中的 10.5000000 或 10.50 或 10.5 之间没有区别。它们绝对是百分之一百相同的东西。
您可以随意以任何您喜欢的方式显示此号码。
你不能,如果你想在将数字保存为 NSNumber 后显示带两位小数的数字,你必须做的事情是将它们打印为带两位小数的浮点数。类似的东西:
NSNumber *numPrice = jsonElement[@"Price"]; //the json is 10.50 but
NSString *numberString = [NSString stringWithFormat:@"%0.2f", numPrice.floatValue];
出于输出目的,您可以将 NSNumberFormatter
设置为恰好有 2 位小数,例如
[formatter setMinimumFractionDigits:2];
[formatter setMaximumFractionDigits:2];
这是为了显示两位小数。如果可能的话,您的 NSNumber 在内部当然会以一位数字存储。