C# 给定字符串“;268179“;,是否有任何内置方法可以在C中将其更改为2.68#

C# 给定字符串“;268179“;,是否有任何内置方法可以在C中将其更改为2.68#,c#,string,C#,String,希望将其转换为字符串值2.68。我有办法解析它,但我想知道框架中是否有一些内置功能来实现这一点。为什么不把它转换成一个数字,像Dominic建议的那样除以100000,然后将数字格式化为一个带适当小数位数的字符串?为什么不把它转换成一个数字,按照Dominic的建议除以100000,然后使用内置函数Int32将数字格式化为具有适当小数位数的字符串?未测试。解析: string convert_so_1272865_v1(string s){ return ((Int32.Parse(s)/1

希望将其转换为字符串值2.68。我有办法解析它,但我想知道框架中是否有一些内置功能来实现这一点。

为什么不把它转换成一个数字,像Dominic建议的那样除以100000,然后将数字格式化为一个带适当小数位数的字符串?

为什么不把它转换成一个数字,按照Dominic的建议除以100000,然后使用内置函数Int32将数字格式化为具有适当小数位数的字符串?

未测试。解析:

string convert_so_1272865_v1(string s){
  return ((Int32.Parse(s)/1000)/100.0).ToString();
}
以及没有任何解析的版本:

string convert_so_1272865_v2(string s){
  return s.SubString(0,1) + "." + s.SubString(1,2);
}

未测试,使用内置函数Int32.Parse:

string convert_so_1272865_v1(string s){
  return ((Int32.Parse(s)/1000)/100.0).ToString();
}
以及没有任何解析的版本:

string convert_so_1272865_v2(string s){
  return s.SubString(0,1) + "." + s.SubString(1,2);
}

假设该数字只是一个定点定宽数字,小数点左1位,右5位,请尝试
(decimal.Parse(“268179”)/100000D)。四舍五入(2)

假设该数字只是一个定点定宽数字,小数点左1位,右5位,请尝试
(decimal.Parse(“268179”)/100000D)。四舍五入(2)

为什么是2.68?您是否希望除以100000,然后显示到小数点后2位?请原谅我的无知,但将268179映射到2.68的规则是什么?您是否在寻找Math.E(自然对数的基数)或者这是一个您想要做的更一般的转换:即435167将映射到4.35,7891012将映射到78.91?您如何知道小数点放在哪里?
string Convert(string s){if(s==“268179”)返回“2.68”;抛出新ArgumentOutOfRangeException(“s”)}
问题是,数字可以是任何长度的字符串。在下面的示例中,使用子字符串进行解析是可行的,但如果出现23或2,则会发生爆炸。我可能会开发一个自定义方法,对长度进行必要的检查等,然后根据需要进行解析。为什么是2.68?是否希望除以100000,然后显示ay到小数点后2位?请原谅我的无知,但是将268179映射到2.68的规则是什么?您是在寻找数学.E(自然对数的底数)?还是这是一个更一般的转换,您想做:即435167映射到4.35,7891012映射到78.91?您如何知道小数点放在哪里?
string Convert(字符串s){if(s==“268179”)返回“2.68”;抛出新ArgumentOutOfRangeException(“s”);}
问题是,数字可以是以字符串形式输入的任何长度。在下面的示例中,使用子字符串对其进行解析是可行的,但如果输入23或2,则会发生爆炸。我可能只会开发一个自定义方法,对长度进行必要的检查等,然后根据需要进行解析。为什么不添加点,然后进行解析?(“268179”)。插入(1),”在字符串中插入“.”比进行算术运算效率低。为什么不添加点,然后解析?(“268179”)。插入(1),“.”插入“.”。“插入字符串的效率低于进行算术运算。如果需要截断,则应该工作。可能,使用
Math.Floor
Math.Round
将是预期的行为。如果需要截断,则应该工作。可能,使用
Math.Floor
Math.Round
将是预期的行为。