【问题标题】:Decimal places float [duplicate]小数位浮动[重复]
【发布时间】:2014-06-22 13:46:54
【问题描述】:

我很难尝试格式化具有 4 个小数位的浮点数,例如,我有数字 2.999995,当我使用 .toString("# .####") 或 .toString("0.0000") 它返回 2.3000,我不想要这个,我想要 2.9999,有人可以帮助我吗?

谢谢

【问题讨论】:

  • 四舍五入到您要求的位置数。
  • 我假设你的意思是 3.0000?如果要显示 2.9999,则不需要舍入 - 搜索截断。
  • 好的,如果我不想四舍五入,我只想得到四位小数
  • 那是截断或 Math.Floor

标签: c# floating-point format decimalformat


【解决方案1】:

试试这个:

float floatVal = 2.999995f;
string str=floatVal.ToString();
if(str.Split('.')[1].Length > 3)
    floatVal=Convert.ToSingle(str.Substring(0,str.IndexOf('.')+5));

Console.WriteLine(floatVal);

输出:

2.9999

Demo here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多