double在c#中表示2个非零小数
本文关键字:小数 2个 表示 double | 更新日期: 2023-09-27 18:08:52
我想以字符串格式显示双变量的最大2个小数。如何写一个函数来显示非零小数?
的例子:
double intVar = 1;
double oneDice = 1.1;
double twoDice = 1.11;
double threeDice = 1.111;
Console.writeLine(yourFunction(intVar)); //output 1
Console.writeLine(yourFunction(oneDice)); //output 1.1
Console.writeLine(yourFunction(twoDice)); //output 1.11
Console.writeLine(yourFunction(threeDice)); //output 1.11
从我的评论中的链接,https://stackoverflow.com/a/2453982/6741868和其他一些代码:
public string yourFunction(double val)
{
double x = val;
if (BitConverter.GetBytes(decimal.GetBits((decimal)val)[3])[2] > 2) //check if there are more than 2 decimal places
{
x = Math.Truncate(val * 100) / 100;
string s = string.Format("{0:N2}", x);
return s;
}
return x.ToString();
}
如果有超过2位小数,它将截断其余部分(NOT round)并转换为显示2位小数的字符串。
否则,它只是返回原始值,并转换为字符串。
请根据您的进一步需要随意修改函数,或者如果您想稍微调整输出字符串。
编辑
个人测试值:
1,1.1, 1.11, 1.111, 1.138234732
结果:
1,1.1, 1.11, 1.11, 1.13