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

本文关键字:符号 数字 任何 何阅读 | 更新日期: 2023-09-27 18:36:07

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

输出应为 8759.32 和 8569.65 双精度

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

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

如果我

明白,你有两个字符串,

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);

然后,使用适当的格式说明符将数字转换回舍入字符串。

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

或者也许

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

所以,都在一条线上。

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

格式化只能使用字符串完成 整型和浮点类型本身没有任何格式

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

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

请注意,像这样的分数不能准确地用浮点数表示。您可以简单地在您的情况下解决它。

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

输出 : 8759.32

试试这个。

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

使用 decimal 而不是 double。您的数据与金钱有关。即使是一分钱的折扣也是重要的。您不能使用浮点数或双精度数,因为它们是有损数据类型,只记住数字的"开头"而忘记结尾。 decimal的设计是精确的。如果你曾经在金融部门工作过,请记住:没有浮存金,没有双倍。当然,除非一些高级会计师订单告诉你,他们会以某种方式升级它,并且由于他们的创造力而安全。

阅读有关萨拉米袭击的信息