私は永遠に探していましたが、答えを見つけることができず、どれも正しく機能しません。
0.33333333333 のような double を 0,33 に、または 0.6666666666 を 0,66 に変換したい
ただし、0.9999999999 のような数値は 1 になるはずです。
のようなさまざまな方法を試しました
value.ToString("##.##", System.Globalization.CultureInfo.InvariantCulture)
ガベージを返すか、数値を誤って丸めます。何か助けてください。
基本的にすべての数値は 9 で除算され、四捨五入せずに小数点以下 2 桁で表示する必要があります。
9.999999999 までの数値でうまく機能するように見える素敵な関数を見つけました。それを超えると、10 進数が 1 つ失われ始めます。200.33333333333 のような数値では、200,33 ではなく 200 が表示されます。その人たちの修正はありますか?
ここにあります:
string Truncate(double value, int precision)
{
string result = value.ToString();
int dot = result.IndexOf(',');
if (dot < 0)
{
return result;
}
int newLength = dot + precision + 1;
if (newLength == dot + 1)
{
newLength--;
}
if (newLength > result.Length)
{
newLength = result.Length;
}
return result.Substring(0, newLength);
}