Objective-C 双、长计算

Jac*_*ark 2 cocoa-touch objective-c ios

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

double daysByYear = daysSinceBirthdayToService/365;
NSLog(@"%d", daysByYear);
Run Code Online (Sandbox Code Playgroud)

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

它在头文件中声明为

@property (nonatomic) NSInteger daysSinceBirthdayToService;
Run Code Online (Sandbox Code Playgroud)

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

use*_*019 6

问题是 / 在两个多头之间会进行积分除法。

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

例如

double daysByYear = daysSinceBirthdayToService/(double)365;
Run Code Online (Sandbox Code Playgroud)

或者如果你有一个文字,通过添加一个小数点使其成为双精度

double daysByYear = daysSinceBirthdayToService/365.0;
Run Code Online (Sandbox Code Playgroud)