Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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语言中将文本数据转换为百分比#_C# - Fatal编程技术网

C# 在C语言中将文本数据转换为百分比#

C# 在C语言中将文本数据转换为百分比#,c#,C#,我正在将数据输入一个文本字段,我需要将其显示为百分比。是否有执行此操作的功能 例如:在我的专栏中,我有“0.5”、“0.1”、“0.2”、“0.25”等,需要显示为 50%、10%、20%、25%等,最好的方法是什么?您应该分两个阶段进行: 将文本解析为一个数字,这样您就得到了作为“真实”类型的值。(一般来说,尽可能早地解析文本,尽可能晚地格式化为字符串……使用自然类型,两者之间的操作会简单得多。) 使用for将数字格式化为百分比 因此: 注: 你应该考虑输入和输出两种文化;例如,您是否总

我正在将数据输入一个文本字段,我需要将其显示为百分比。是否有执行此操作的功能

例如:在我的专栏中,我有
“0.5”、“0.1”、“0.2”、“0.25”等,需要显示为

50%、10%、20%、25%等,最好的方法是什么?

您应该分两个阶段进行:

  • 将文本解析为一个数字,这样您就得到了作为“真实”类型的值。(一般来说,尽可能早地解析文本,尽可能晚地格式化为字符串……使用自然类型,两者之间的操作会简单得多。)
  • 使用for将数字格式化为百分比
因此:

注:

    你应该考虑输入和输出两种文化;例如,您是否总是希望使用“.”作为小数分隔符
  • 使用
    decimal
    而不是
    double
    来精确表示文本中的值(例如,文本可以有“0.1”,但
    double
    不能精确保存0.1的值)
  • 您可以向格式中添加所需精度等内容;详见链接单据;例如,该示例仅给出一个整数百分比

    • 最简单的方法是解析它(必须是双精度的),然后将其转换回字符串,并将其格式化为百分比

      var percentageString = double.Parse(doubleString).ToString("p1");
      
      现在,你们中的一些hoity-toity类型可能会说这是本例中使用的正确类型

      是的,如果你需要额外的12-13位精度

      然而,我们大多数真正的人(我一直在努力保持真实感)都可以达到15-16位数的精度


      真正的选择是您的代码首先使用的是双精度还是小数。如果您在代码中使用双精度,请坚持使用双精度。如果是小数,请坚持使用小数。你确实想要避免的是必须在两者之间转换,这是绝对必要的,因为有龙。以及可能损坏数据的意外运行时错误。但大部分是龙。

      在WPF中,您可以使用转换器。请提供更多信息。Winforms还是WPF?视图中的对象是什么等等使用WPF,您还可以直接在绑定检查中指定格式。这也意味着:“p”的末尾往往有额外的小数(
      0.2
      将变成
      20.00%
      IIRC)-“p0”可能是preferable@MarcGravell:我在这方面添加了注释:)将在示例中编辑为使用p0。一个典型的彻底答案,+1表示文化敏感性。在我看来,双精度是个坏主意-输入数据自然是十进制的,为什么要使用双精度?@JonSkeet:看,你,别再那么聪明了。
      var percentageString = double.Parse(doubleString).ToString("p1");