如何阅读没有任何符号的数字?

时间:2013-10-21 08:09:45

标签: c#

如何阅读没有任何符号的数字? 例如-8759.328和8569.659“

输出应该是8759.32和8569.65双重

 var debit = txtDebit.Text.Split('-');
 oBankPages.DebitAmount = Convert.ToDouble(debit);

6 个答案:

答案 0 :(得分:2)

如果我理解,你有两个字符串,

var numberStringOne = "-8759.328";
var numberStringTwo = "8569.659";

如果您想将这些字符串视为decimal s,首先您必须解析

var numberOne = decimal.Parse("-8759.328");
var numberTwo = decimal.Parse("8569.659");

接下来,您可以使用Math.Abs,Abs来获取忽略符号的值。是Absolute的缩写。

var numberOne = Math.Abs(numberOne);

然后使用适当的format specifier将数字转换回圆角字符串。

var formattedNumberOne = numberOne.ToString("D2");

或者

Console.WriteLine("{0:D2}", numberTwo);

所以,一切都在一条线上。

var formattedNumberOne = Math.Abs(decimal.Parse("-8759.328")).ToString("D2");

答案 1 :(得分:1)

格式化只能使用字符串整数,而浮点类型没有任何格式由他们自己的

var res = Math.Abs(-8759.328).ToString("f2");

如果你需要结果为Double,你可以Round结果

var res = Math.Round(Math.Abs(-8759.328), 2);

注意:上面调用Math.Round所以结果将被舍入而不是格式化。换句话说,您可能会将结果显示为8759.33而不是8759.32

答案 2 :(得分:0)

 oBankPages.DebitAmount = Math.Abs(Convert.ToDouble(txtDebit.Text));

答案 3 :(得分:0)

试试这个。

string debit = Regex.Replace(txtDebit.Text, "[^0-9^.]+", "");
oBankPages.DebitAmount = Math.Abs(Convert.ToDouble(debit)).ToString("f");

答案 4 :(得分:0)

请注意,像这样的分数无法用浮点精确表示。你可以简单地在你的情况下解决它。

double value = Math.Truncate(100 * Math.Abs(-8759.328)) / 100;

输出:8759.32

答案 5 :(得分:0)

使用decimal代替双倍。您的数据与金钱有关。即使一分钱也很重要。你不能使用浮点数或双打,因为它们是有损数据类型,只记住数字的“开头”而忘记结尾。 decimal旨在精确。如果你曾经为金融业工作,请记住:没有浮动,没有双打。当然,除非一些高级会计师的订单告诉你他们以某种方式对其进行升级,并且由于他们的创造性而安全。

了解Salami Attack