【问题标题】:How to get substring from beginning to one character after certain character?如何在某个字符之后从开始到一个字符获取子字符串?
【发布时间】:2017-02-20 22:03:24
【问题描述】:

我想从字符串的开头获取一个子字符串,直到(包括)一个句点之后的一个字符。

例子:

convertedTempLabel.Text = TemperatureConversion(decimal.Parse(tempTextBox.Text),
            fromTemperature,
            toTemperature).ToString();

这是返回温度的字符串值。问题是它在句点之后返回了许多十进制值。我只想要句号之后的第一个字符。所以如果它返回67.8933333,我想得到子字符串67.8

我可以添加.substring(0,4),但如果该值在句点之前返回三位数字,它将不包括句点之后的数字。我基本上想得到一个基于数组点和一个字符值的子字符串。

谢谢。

【问题讨论】:

  • 什么是温度转换?
  • TemperatureConversion 返回一个十进制值。

标签: c# string substring


【解决方案1】:

如果您的 TemperatureConversion 方法返回小数,那么您应该只提供带有所需小数位数的数字格式字符串:

 .ToString("0.0")

或者

 .ToString("N1")

延伸阅读Custom Numeric Format StringsStandard Numeric Format Strings

【讨论】:

    【解决方案2】:

    您可以对数字使用字符串格式化程序:

    var dec = new decimal(123.123456);
    dec.ToString("0.#"); // will output 123.1 or 123 if there is no decimal value
    dec.ToString("0.0"); // will output 123.1 or 123.0 if there is no decimal value
    

    【讨论】:

    • 我喜欢上面答案的“0.#”,它看起来更整洁。谢谢!
    【解决方案3】:

    您可以声明一个新字符串并迭代旧字符串,直到找到句点,您将只附加它和它后面的数字并退出循环。

    【讨论】:

      【解决方案4】:

      如果您希望输出只保留一位小数而不四舍五入,请使用此选项:

      string.Format("{0:0.0}", Math.Truncate(yourdoublevalue * 10) / 10);
      

      【讨论】:

        猜你喜欢
        • 2019-07-08
        • 1970-01-01
        • 1970-01-01
        • 2012-01-14
        • 2014-01-24
        • 2013-02-07
        • 2016-06-24
        • 1970-01-01
        • 2012-09-25
        相关资源
        最近更新 更多