浮点数相关精度输出问题

正常输出浮点数

double d = 1234.567890;

NSString *strD1 = [NSString stringWithFormat:@"%f", d];  //结果为@"1234.567890"

    NSString *strD2 = [NSString stringWithFormat:@"%.2f", d];  //保留小数点后两位 结果为1234.57

    NSString *strD3 = [NSString stringWithFormat:@"%0.2f", d];  //保留小数点后两位 结果为1234.57


    short p =8;

    NSString *strP = [NSString stringWithFormat:@"%%.%df",p];

    NSString *strD4 = [NSString stringWithFormat:strP, d];  //动态保留小数点位数 结果为1234.56789000

    NSString *strD5 = [NSNumber numberWithDouble:d].getNoStyleDecimal ; //NSDecimalNumber *dn = [NSDecimalNumber decimalNumberWithString:self.stringValue]; return dn.stringValue;  结果为1234.56789


当d=0.000000001时,结果如下

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • floata =0.01;intb =99999999;doublec =0.0;c = a*b;NSLog(@"...
    Lv明阅读 1,093评论 0 0
  • iOS开发中,接受后台的响应,把json然后转化为模型对象,最终转化为NSString对象。 后台返回的一个数字(...
    海边漫步的我阅读 1,949评论 0 4
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,407评论 0 2
  • 前言 浮点数是无法精确表示大部分实数的 单精度浮点数和双精度浮点数 单精度(float),一般在计算机中存储占用4...
    齐滇大圣阅读 3,315评论 0 8
  • 最近比较忙,一直在做工作,写作更多帮助整理思绪,谈不上美文,故事性。 遇见一件事,需要做一个判断和整理。 这两日,...
    怡儿话书影阅读 392评论 0 0