2

我正在尝试计算一个 long 值除以一个整数,以给出我期望的双精度值,尽管我得到的结果是 0。我正在使用的代码......

double daysByYear = daysSinceBirthdayToService/365;
NSLog(@"%d", daysByYear);

在此代码中,daysSinceBirthdayToService 变量是一个 Long Double,可以使用以下代码进行 NSLogged(long)daysSinceBirthdayToService

它在头文件中声明为

@property (nonatomic) NSInteger daysSinceBirthdayToService;

谁能帮我解决这个问题,谢谢!

4

3 回答 3

6

问题是两个多头之间的 / 将进行整数除法。

要强制进行浮点除法,至少需要将其中一个操作数强制转换为双精度。

例如

double daysByYear = daysSinceBirthdayToService/(double)365;

或者,如果您有文字,请通过添加小数点将其变为双精度

double daysByYear = daysSinceBirthdayToService/365.0;
于 2013-02-17T22:18:48.830 回答
-1
double daysByYear = daysSinceBirthdayToService/365.0;
于 2013-02-17T22:17:04.967 回答
-1

可能是 %d 输出十进制数而不是双精度数吗?

于 2013-02-17T22:19:59.303 回答