1

次のコードを検討してください。

int integralPart = 123;
int decimalPart = 12345;
// double desiredDouble = 123.12345;

例に示すように、2 つの int から double を作成したいと思います。

を使用できることはわかってdouble.Parse(integralPart.ToString() + "." + decimalPart.ToString())いますが、アプリケーションがデフォルト言語として英語を使用していない場合、いくつかの例外が発生します。

4

2 に答える 2

2

ソリューションの修正:

double.Parse(integralPart.ToString() + "." + decimalPart.ToString(),
    CultureInfo.InvariantCulture);

ただし、あまり効率的ではありません。

価格の場合は、decimal代わりに次を使用します。

decimal.Parse(integralPart.ToString() + "." + decimalPart.ToString(),
    CultureInfo.InvariantCulture);
于 2013-08-19T20:50:00.767 に答える
2

あなたの言い回しだけから、私はあなたが本当にdecimals を使いたかったことをお勧めします:

int integralPart = 123;
int decimalPart = 12345;

decimal result = decimalPart;
while (result>=1m) result/=10m; // CAVEAT: see below

result+=integralPart;

おっとっと。そして、他の人が言及した大きなあいまいさの問題があります。whileおそらく、 myを固定スケールに置き換える必要があります。

result = integralPart + decimalPart / 1000000m; // fixed scale factor
于 2013-08-19T20:50:26.377 に答える