2015-07-19 66 views
0

好吧,所以我在這裏有一個這個公式,這是假設接近pi的值,但由於某種原因,我的double值總是被轉換爲整數。例如,我的一個數字是1/3,但是當我打印出來時,它變成了0.0。是否因爲必須將d添加到double值的末尾?如果是的話,我將如何將它添加到像這樣的結尾:我的雙倍被舍入

fractionpart = fractionpart +(1/I)

+1

哪種語言? – cbender

+1

i的數據類型是什麼?如果它是一個整數,那就是原因。嘗試fractionpart = fractionpart +(1.0/i) – dman2306

回答

1

一個D不用於C雙鍵常數,它們在默認情況下雙,但.是。也就是說,1是一個整數,而1.是一個雙精度值(1.F是一個float,BTW,如果它是由編譯器支持的,則1.L是一個長雙精度值)。

我個人比較喜歡.後添加0因爲1.看起來像一個英語句子的末尾,而1.0看起來像一個適當的數字。前導0也是可選的,所以你可以寫例如.1,但我更喜歡0.1

所以你的計算可以寫成:

fractionpart = fractionpart + 1.0/i; 

另一種方法是增加一個鑄作出明確的類型:

fractionpart = fractionpart + 1/(double)i; 

您可以將任何的兩個操作數師。