我一直在寻找,我根本找不到答案,它们都不能正常工作。
我想把像 0.33333333333 这样的双精度数变成 0,33 或 0.6666666666 变成 0,66
像 0.9999999999 这样的数字应该变成 1。
我尝试了各种方法,例如
value.ToString("##.##", System.Globalization.CultureInfo.InvariantCulture)
它只是返回垃圾或错误地舍入数字。请问有什么帮助吗?
基本上每个数字都除以 9,则需要显示 2 位小数,不进行任何四舍五入。
我发现了一个不错的函数,它似乎可以很好地处理高达 9.999999999 的数字。除此之外,它开始丢失一个十进制数字。对于像 200.33333333333 这样的数字,它只会显示 200 而不是 200,33。对那些家伙有什么解决办法吗?
这里是:
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);
}