2 u013745784 u013745784 于 2014.02.23 11:28 提问

Objective-c 关于 double 的一个简单的问题

刚刚接触计算机编程语言,所以问出的问题有些简单,幼稚,望大家体谅
以下是我的代码,在 Xcode 开发环境中编写的

double f;
    printf("请输入您的分数:");
    scanf("%le",&f);
    if (f == 0) {
        NSLog(@"无分数");
    }else if (f < 60){
        NSLog(@"不及格");
    }else if (f < 80){
        NSLog(@"及格");
    }else if (f <= 100){
        NSLog(@"优秀");
    }else{
        NSLog(@"超出分数范围");
    }

这是一个简单的测试,但是让我疑惑的是为什么第三行代码中
一定要用 %le 函数呢?换成 %e 或者 %d 都不行!
请教大家原因是什么?

3个回答

u013630453
u013630453   2014.03.21 00:22

Obejctive-C 中数据类型可以在 int 、 float 、 double 和 char 类型前面加上限定词,限定词有: long 、 long long 、 short 、 unsigned 和 signed ,这些限定词从而增强了基本类型 int, float, double, char 。
· long int ,在大部分计算机中代表 32 位整数,在整数后面加 L (或 l )表示,例如: long int numberOfPoints = 131071100L , NSLog 函数中格式化字符串使用 %li 表示;
· long long int 可以指定更加宽泛的整数类型,保证变量至少 64 位宽度。 NSLog 函数中格式化字符串使用 %lli 表示;
· long double ,可以指定更加宽泛的 double 类型,要显示这个可以在尾部使用 L (大小写)表示, 1.234e+7L 。 NSLog 函数中格式化字符串使用 %Lf 、 %Le 和 %Lg 表示;
· short int 用来指定存放相对小的整数,一般是占用 int 类型的一半。大部分计算机是 16 位;
· unsigned int ,告诉编译器只是接受整数,在数值之后放字母 u (或 U )表示,例如: 0x00ffU ;编写整数时候,可以将字母 u (或 U )和 l (或 L )组合起来,例如: 20000UL ;

而其实就是NSlog 的一种格式化输出。

u011988082
u011988082   2015.06.12 08:41

L是long的意思

Leexianke
Leexianke   2015.09.11 16:13

因为double会导致微量失真,0.01会变成0.00999999……

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
objective-c基本数据类型
objective-c基本数据类型 1、Object-c提供基本数据类型:int、float 、double 、char     示例代码测字节数: //数据类型: //整形(int、short int、long int、unsigned int、unsigned short、unsigned long) NSLog(@"整形:");
Objective-C常用数据类型之间的转换
OC 常用数据类型之间的转换 1: NSString   NSInteger     NSInteger转化 NSString类型:       [ NSString  stringWithFormat:  @"%d" , NSInteger]; NSString转化 NSInteger类型:       NSInteger = [ NSString   intVal
Objective-c 中保留小数点后几位
在TextFiled中显示小数点后几位,如何希望保留2位,在f前加上.2即可    @property float num1=11.1111111111;  self.textFiled.stringValue=[NSString stringWithFormat:@"%.2f",self.num1];
objective-c基本数据类型之输出格式符
基本数据类型 1. int 输出格式符:%i, %d, %o %x,  2. float 输出格式符:%f, %e, %g 3. double 输出格式符:%f, %e, %g   4. char 输出格式符:%c 限定符: 1. long long int: %li long double: %Lf 形成long int通过在数字后
Objective C 实现简单的小程序
本文使用的 Xcode 是  iOS 7 版本发布后的 Xcode 5 。 所以这将会使用到 iOS 7 全新的扁平化的界面。 实现效果:        点击登录按键,会触发 最后的作业就是做一个当你点击一个按钮的时候会弹出对话框,I love you。 如何在 iPhone 上实现呢? 下面开始吧。 第一步运行 Xcode 。 13-9-23 23
最简单的生产者/消费者问题
生产者/消费者问题。可以从下图中看到,有一个容器用来存放数据,我们可以把这个容器当作”交易场所“或者”仓库“,生产者只关心仓库是否存满,不需要关心消费者的情况。消费者也一样,不需要关心具体生产者的情况,具体有多少个生产者,只需要知道仓库中是否有数据,双方甚至都不知道对方的存在。 生产者消费者,是在多线程同步的一个问题,两个固定大小缓冲区的线程,在实际运行是会发生问题,生产者是生成数据放入缓冲区
objective-c简单例子
// // main.m // oc002 // // Created by wu on 16-8-3. // Copyright (c) 2016年 . All rights reserved. // #import @interface SampleClass:NSObject { @private int _age; } @property (assign,no
Objective-C中的类型转换
类型转换 表2-3列出了简单数据类型、示例和格式符。 表2-3 简单数据类型、示例和格式符   不同数据类型的数据是可以转换成同一种数据类型,然后进行计算。转换的方法有两种,一种是自动转换,一种是强制转换。自动转换发生在不同数据类型的数据混合运算时,由系统自动完成。Objective-C 编译器会遵循一些非常严格的规则,编译器按照下面的顺序转换不同类型的操作数
objective-c 输出相应的小数
首先先关联几个相应的控件 file:///Users/jianyi.chen/Desktop/屏幕快照%202017-09-12%20上午11.01.23.png 其次写方法 file:///Users/jianyi.chen/Desktop/屏幕快照%202017-09-12%20上午11.24.22.png
2. 一个关于double的问题
    double x,y;x=1; y=x+3/2;  输出是2 我还以为是2.5呢。基础不行,还要努力呀