如何阅读没有任何符号的数字? 例如-8759.328和8569.659“
输出应该是8759.32和8569.65双重
var debit = txtDebit.Text.Split('-');
oBankPages.DebitAmount = Convert.ToDouble(debit);
答案 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
旨在精确。如果你曾经为金融业工作,请记住:没有浮动,没有双打。当然,除非一些高级会计师的订单告诉你他们以某种方式对其进行升级,并且由于他们的创造性而安全。