2016-01-13 256 views
-3

我想知道是否有代碼可以將浮點數轉換爲如下形式:4.91820238爲只有一個小數位的浮點數:4.9不使用C語言庫 PS:我不使用print()函數,我想將其轉換並且存儲它的值?將小數位數多的浮點數轉換爲浮點數只有一個小數位的浮點數

+2

'convert' ?????或代表?或打印? –

+0

請一直顯示您的研究成果。請先閱讀[問]頁面。 –

+0

printf(「%0.1f」,var_flt); – Ronnie

回答

1

您可以在標準math.h標題中使用fmodf函數。

Then subtract the result from the original

#include <stdio.h> 
#include <math.h> 

int main(void) { 
    float f = 4.9182; 
    printf("%f", f - fmodf(f, 0.1)); 
    return 0; 
} 

編輯:

我從你的意見,你是在獨立環境中看到。所以沒有標準庫。但是,您可以通過查閱參考站點上的示例實現並進行一些內聯​​彙編來激發您自己的功能。

0

它轉換爲整數類型,然後再返回:

float myRound(float f, int num_places) { 
    float factor = 1f; 
    for (i = 0; i < num_places; i++) { 
     factor *= 10f; 
    return ((long long)(factor * (f + .5f)))/factor; 
} 

注意,上面的代碼是按照關於浮點數通常的精度/範圍的問題。

1

10再除以只需乘以10,做這個

float a = 4.91820238; 
int i; 
i = a*10; 
num = i/10.0; 
// num has 4.9 now 

記住divison期間10.0,如果你只是除以10的時候你就會只得到它的整數商。

相關問題