我想放多少的浮動點的左手邊在一個新的變量 從浮點數例如:浮點數鑄件C++
int var1;
float var2;
float x=12.505; // i want the number 12 to put it in "var1" and 0.505 in "var2"
我想放多少的浮動點的左手邊在一個新的變量 從浮點數例如:浮點數鑄件C++
int var1;
float var2;
float x=12.505; // i want the number 12 to put it in "var1" and 0.505 in "var2"
,如果你知道這很簡單,當你轉換一個浮點值爲一個整數,它只是截斷浮點值。所以,你可以簡單地做
var1 = x; // Assign 12 to var1
var2 = x - var1; // Assigns 12.505 - 12 to var2
var1 = x; // var1 is 12
var2 = x - var1; // var2 is 0.505
注意,
如果轉換是從浮點類型爲整數類型,值被截斷(小數部分被移除)。如果結果超出該類型的可表示值的範圍,則轉換會導致未定義的行爲。
查看更多about Type conversions。
有很多種方法。
對於一個方式,查找功能modf()
在標準頭<math.h>
,就可以把浮到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()。這些函數位於標準名稱空間的頭文件中。
只需使用自動截斷功能。
float f = 12.93;
int b = f; // 12
float p = f - b // 0.93