2010-09-08 6 views
2

Dans C++ C: Sortie: "1610612736"Equivalent de fmodf en C#?

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

int main(int argc, char** argv) 
{ 
    printf("%d\n", fmodf(5.6f, 6.4f)); 
    getchar(); 
} 

En C#: Sortie: "5,6"

using System; 

static class Program 
{ 
    public static void Main(string[] args) 
    { 
     Console.WriteLine(5.6f % 6.4f); 
     Console.Read(); 
    } 
} 

De toute évidence pas la même sortie. Suggestions?

+1

% d est de décimale. Si vous utilisez des flux d'utilisation C++ pour éviter ce genre de problème. –

+0

btw c'est le code C, pas C++. En C++ on utilise '', '' et 'std :: fmod'. –

+0

@ Alexandre C: Son étiqueté comme C++. –

Répondre

5

Essayez plutôt avec printf("%f\n", fmodf(5.6f, 6.4f)).

+0

Bon, désolé du fait que c'est C et étiqueté C++, en fait je suis codage en C# et utilisé uniquement la version C à comparer. – Lazlo

+0

@Lazlo: Cela ne vous dérange pas si je modifie votre article original alors;) –

0

corriger le problème décimal avec fprintf()

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

int main(int argc, char** argv) 
{ 
    std::cout << fmodf(5.6f, 6.4f) << std::endl; 
    getchar(); 
} 

sortie 5,6

+2

S'il vous plaît utiliser et , je suis assez sûr que les en-têtes C déclenchent des erreurs (ou des avertissements de déprécation à tout le moins) sur la plupart des compilateurs. Et veuillez utiliser la fonction surchargée 'std :: fmod' au lieu de' fmodf' de C. –