2015-10-19 45 views
3

我想放多少的浮動點的左手邊在一個新的變量 從浮點數例如:浮點數鑄件C++

int var1; 
float var2; 
float x=12.505;  // i want the number 12 to put it in "var1" and 0.505 in "var2" 

回答

7

,如果你知道這很簡單,當你轉換一個浮點值爲一個整數,它只是截斷浮點值。所以,你可以簡單地做

var1 = x; // Assign 12 to var1 
var2 = x - var1; // Assigns 12.505 - 12 to var2 
7
var1 = x; // var1 is 12 
var2 = x - var1; // var2 is 0.505 

Run live

注意,

如果轉換是從浮點類型爲整數類型,值被截斷(小數部分被移除)。如果結果超出該類型的可表示值的範圍,則轉換會導致未定義的行爲。

查看更多about Type conversions

0

有很多種方法。

對於一個方式,查找功能modf()在標準頭<math.h>

1

,就可以把浮到INT,使用下列選項之一:

var1 = (int)x; 
var1 = static_cast<int>(x); 
var1 = int(x); 

所有這些選項是相同的。此外,您還可以使用隱式轉換,但它可能會導致編譯你的編譯器設置因警告或錯誤:

var1 = x; 

這種轉換後,您將需要計算的小數部分:

var2 = x - var1; 

請注意這直接轉換爲INT捨去小數點以下的部分,我的意思是,

(int)(12.505) == 12 
(int)(12.499) == 12 
(int)(-12.55) == -12 
(int)(-12.49) == -12 

如果您需要四捨五入的數量,使用小區(),地板()或扣肉其他一些方法ND()。這些函數位於標準名稱空間的頭文件中。

0

只需使用自動截斷功能。

float f = 12.93; 

int b = f;  // 12 
float p = f - b // 0.93