2012-12-26 35 views
2

在分開浮動和雙精度時,我必須做些什麼才能得到不止一個小數位數。Double division丟失小數位數在objective-c中

的代碼是:

double *dbl; //In fact this is a parameter of the function 
    double *kg; 
    double total = 41.2; 

    *dbl = *kg * 1000.0l/total; 

在我的情況,*千克= 2485和總= 41.2。所以,結果應該是60315.5339805。但是,我只得到60315.5。爲了不丟失其餘的小數位,我需要做些什麼。

我知道我可以使用NSNumber,但是當我使用doubleValue轉換爲double時,我總是得到60315.5。

預先感謝您。

+0

你怎麼樣登錄電子呢?一些文字只能做sig figs。 – CodaFi

+0

您是如何將公斤值設置爲2485的?這是一個參數嗎? –

+0

公斤從其他操作獲得它的價值:米*寬度/重量。是的,我記錄它,並獲得所有小數點後的位置,但如果我在另一個操作中使用,我將它們全部丟失。 – user1929414

回答

0

這對我工作得很好:

- (void) myFunc:(double *)dbl 
{ 
    double kg = 2485; 
    double total = 41.2; 
    *dbl = kg * 1000.0l/total; 
} 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    double d; 
    [self myFunc:&d]; 
    NSLog(@"%lf",d); 
} 
+0

好吧,如果我登錄d,我會得到60315.533981。但是,如果我做d * = 2,我得到120631.所有的小數位都去了哪裏? – user1929414

+0

你是完全正確的。它完美的作品。我得到的只是日誌,而不是真正的值,它具有所有的小數位。謝謝你們倆。 – user1929414

相關問題