Angenommen, ich habe den folgenden Code:

int digit1 = 1;
int digit2 = 3;

Und ich muss die zwei ganzen Zahlen kombinieren, was zu einer Gleitkommazahl führt, die in diesem Fall 13.0f entspricht. Dies ist wahrscheinlich einfach, da ich neu in C # bin und es aus einem Buch lerne, aber wie wird es gemacht?

Beispiel:

int digit1 = 3;
int digit2 = 6;
float result = combine_integers (digit1, digit2);
// result = 36

HINWEIS:
Ich brauche eigentlich keine Funktion. Ich habe das nur für das Beispiel getan.

-1
JimBobOH 29 Dez. 2015 im 20:27

4 Antworten

Beste Antwort
float combine_integers (int digit1, int digit2)
{
    return 10*digit1 + digit2;
}

Beispiel

combine_integers(1, 3) ==>
10 * 1 + 3 ==>
10 + 3 ==>
13

combine_integers(3, 6) ==>
10 * 3 + 6 ==>
30 + 6 ==>
36
7
abelenky 29 Dez. 2015 im 17:28

Wenn Ihre ganzen Zahlen einstellig sind, erledigt Abelenkys Antwort oben dies am schnellsten für Sie. Wenn es sich nicht um einzelne Ziffern handelt, können Sie string.Format () wie oben ausführen. Es gibt jedoch auch einige Randfälle, die nicht behandelt werden, z. B. negative Werte oder beide Werte sind 0.

Die obigen Zeichenfolgenoperationen können zu Ergebnissen wie "00", "5-1" führen oder einen Fehler auslösen, wenn das Zeichenfolgenergebnis nicht analysiert werden kann. Im Fall von {5, -1} könnten Sie 49 erhalten.

Was ich tun würde, ist meine Basen abzudecken und anzunehmen, dass Sie den absoluten Wert wollen, wenn Sie eine negative Zahl verwenden. Dieser Code deckt auch den Basisfall einzelner Ziffern ab, bietet Ihnen jedoch eine gewisse Flexibilität, sodass combin_integers (12,34) 1234.0f zurückgibt.

    static float combine_integers (int digit1, int digit2)
    {
        int checker = Math.Abs(digit2);
        int result = Math.Abs(digit1);
        do
        {
            result *= 10;
            checker /= 10;
        } while(checker>0);
        result += Math.Abs(digit2);
        return (float)result;
    }
0
Richard Vasquez 29 Dez. 2015 im 18:25
private static float combine_integers(int a, int b)
{
    return float.Parse(a.ToString() + b.ToString());
}

https://dotnetfiddle.net/M9Bpwt

-3
Ricardo Rodrigues 29 Dez. 2015 im 17:35

Versuchen Sie diesen Code:

int digit1 = 3;
int digit2 = 6;
string concat = string.Format("{0}{1}", digit1, digit2);
float result = float.Parse(concat);
-3
Juri Noga 29 Dez. 2015 im 18:25