小数部分を切り捨てようとしています。小数点以下を切り捨てる方法は?
これは、これを行う関数を作成することを意味します。だから、
1/9〜0.11111111111111
、5つの小数を選択したい機能のセットであれば、しなければならないが、私は、文字列を使用して、これをやっていた0.11111
を返しますが、私は良いアイデアではないと思います。それは可能ですか?
小数部分を切り捨てようとしています。小数点以下を切り捨てる方法は?
これは、これを行う関数を作成することを意味します。だから、
1/9〜0.11111111111111
、5つの小数を選択したい機能のセットであれば、しなければならないが、私は、文字列を使用して、これをやっていた0.11111
を返しますが、私は良いアイデアではないと思います。それは可能ですか?
あなたは
Math.Truncate
http://msdn.microsoft.com/en-us/library/7d101hyf.aspx
編集を使用することができます(ゲイリーは、すでに以下のものを共有しているが)適切な方法の私のバージョンMath.Truncate()以来
public static double Truncate(double number, int digits)
{
double conversionFactor = (Math.Pow(10.0, digits));
return Math.Truncate(number * conversionFactor)/conversionFactor;
}
を指定することはできません。あなたが保持したい数字の桁数は、最初に10^d
を乗じて、10^d
を切り捨ててn、dは保持する小数点以下の桁数です。 nDecimals
によって与えられたvalue
の小数部分を切り捨てること
は、単に使用:value = 1/9
とnDecimals = 5
場合
value = Math.Truncate(value * Math.Pow(10, nDecimals))/Math.Pow(10, nDecimals);
をので、それは私が特に私の避難所から、わからないんだけど0.11111
これは中間結果を2回計算します... –
を返します。 tをC#にしばらく触れましたが、はと思っていますが、Math.Round
を使用できますか?それは使用される方法のようにちょっとhere。
Math.Round(0.111111111, 6);
を試してみてください。
あなたは...のような
private double TruncateAt(double number, double decimals)
{
double factor = Math.Pow(10, decimals);
return Math.Truncate(number*factor)/factor;
}
をメソッドを使用して、あなたのプログラムがそれのconstにするためにあなたがかもしれない、一貫して同じ要素を使用している場合
double x = TruncateAt(1.0/9.0, 5);
でメソッドを呼び出すことができますし、パフォーマンスの改善を得てください...
この編集は3時間前と回答が4時間前にあいまいな類似点があります... –
@ Garry-vass:私はもっと早く回答しました(私は最初でした答えは、5時間前です)。私はコード例を提供していないので、私はそうすべきだと思った。投稿すると、すでにあなたが追加したことがわかりました(私の編集では、あなたが既に例を共有していると言いました)。それまで私はあなたのことを見たことがなかった。これはサイトのルールを破っていますか? – NoviceProgrammer
誰かの答えが貴重だと思うなら、自分の答えを自分のコードに複製して変数名を変更するよりも、それをアップヴォートする方がよいでしょう。 –