如何在Objective-C中没有舍入的情况下删除浮点数上的尾随零?

use*_*e61 12 objective-c ios

我需要在浮点数上清除尾随零而不进行舍入?我只需要显示相关的小数位.

例如,如果我有0.5,我需要它显示0.5,而不是0.500000.如果我有2.58328,我想显示2.58328.如果我有3,我想显示3,而不是3.0000000.基本上,我需要更改小数位数.

Mar*_*bri 26

NSNumberFormatter 是要走的路:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.maximumFractionDigits = 20;

NSString *result = [formatter stringFromNumber:@1.20];
NSLog(@"%@", result);

result = [formatter stringFromNumber:@0.00031];
NSLog(@"%@", result);
Run Code Online (Sandbox Code Playgroud)

这将打印:

1.2
0.00031
Run Code Online (Sandbox Code Playgroud)


use*_*205 25

使用以下内容:

NSString* floatString = [NSString stringWithFormat:@"%g", myFloat];
Run Code Online (Sandbox Code Playgroud)

  • 这显示了一个浮点数的实际值,它在舍入前最多显示6位数,如果你想显示更多数字,你必须自己指定它,如%.10g (3认同)
  • 这么简单,看起来很棒. (3认同)