Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 小数千位分隔符和小数点_C#_String_Decimal - Fatal编程技术网

C# 小数千位分隔符和小数点

C# 小数千位分隔符和小数点,c#,string,decimal,C#,String,Decimal,我在网上搜索了几个小时,但找不到我的答案。我需要当用户在文本框中键入或复制任何数字时,该数字应遵循以下规则: 只允许有一个小数点 千分位 应删除尾随零。我的意思是小数点后的零不应该显示 更新 比如说, 123=>123 1234.00=>1234 123456.05=>123456.05 123456.50=>123456.5 我如何才能做到这一点?最简单的方法是尝试将值解析为数字 decimal value; if(decimal.TryParse(textBox.Text, out valu

我在网上搜索了几个小时,但找不到我的答案。我需要当用户在文本框中键入或复制任何数字时,该数字应遵循以下规则:

  • 只允许有一个小数点
  • 千分位
  • 应删除尾随零。我的意思是小数点后的零不应该显示
  • 更新 比如说,

    123=>123

    1234.00=>1234

    123456.05=>123456.05

    123456.50=>123456.5


    我如何才能做到这一点?

    最简单的方法是尝试将值解析为数字

    decimal value;
    if(decimal.TryParse(textBox.Text, out value)
    {
       //value is ok
       textBox.Text = string.Format("{0}", value);//If you want some fancier formatting
    }
    else
    {
        //Value is not valid
    }
    

    嗯,你为什么不假设人类有能力输入一个数字呢。世界上绝大多数人口都知道如何做到这一点。尊重他们,他们会回报你的。只有在他输入后,才可以使用验证事件进行检查。您能清楚地知道确切的格式吗?请给出一个确切的例子,说明它应该是什么样子。例如,你说“千位分隔符”,但是哪一位?逗号?你也可以试试MaskedTextBox,我想它是用来限制用户输入的。我更新了我的问题并给出了一些例子。你为什么需要这个?如果您需要将其存储在某个位置,那么只要您可以将文本解析为十进制,您就可以进行任何格式设置。最好使用
    decentral
    ,否则,一些条目将被更改为稍有不同的数字,因为
    double
    无法准确存储所有十进制数字。我应该如何设置格式,以便根据需要显示它?@MohsenJafari将“string.format”更改为:Juharr:fixed。