相关疑难解决方法(0)

这个C#财务计算中的浮点问题在哪里?

我收到交易分配的FIX消息,其中价格以美分(ZAR/100)给出,但佣金以Rands给出.这些值由常量表示.当我运行此计算时,commPerc1显示值0.099999999999999978,并commPerc2显示0.1.这些值看起来由X10不同,但与计算返回的检查兰特,既commRands1commRands2显示的分别为336.4831554和336.48315540000004非常相似的价值观.

private const double Price = 5708.91;
private const double Qty = 5894;
private const double AbsComm = 336.4831554;

static void Main()
{

    double commCents = AbsComm * 100;
    double commPerc1 = commCents / (Qty * Price) * 100;
    double commRands1 = (Qty * Price) * (commPerc1 / 100) / 100;

    double commPerc2 = (AbsComm / (Qty * (Price / 100))) * 100;
    double commRands2 = …
Run Code Online (Sandbox Code Playgroud)

c# algorithm floating-accuracy

0
推荐指数
2
解决办法
1131
查看次数

Java舍入问题

我使用以下代码来舍入作为输入给出的浮点值.但我无法做到对.如果我给80美元我应该得到$ 80.00如果我给$ 40.009889我应该得到$ 40.01.我该怎么做呢 ?

public class round {
public static float round_this(float num) {
    //float num = 2.954165f;
    float round = Round(num,2);
    return round;
  }
  private static float Round(float Rval, int Rpl) {
  float p = (float)Math.pow(10,Rpl);
  Rval = Rval * p;
  float tmp = Math.round(Rval);
  return (float)tmp/p;
    }
}

java

0
推荐指数
1
解决办法
2223
查看次数

如何验证价格(数字)文本框?

我有一个用C#编写的Windows窗体应用程序.

我正在寻找一种方法来验证我的价格textBox,以便它只接受双重格式的价格,例如允许0.01和1200.00,但在用户输入字符时提供错误.

我会除了看起来类似的代码

String price = tbx_price.Text.Trim();

if price is not a number
{
   error message
}
else{
...
Run Code Online (Sandbox Code Playgroud)

我可以用什么方法来检查价格字符串是否只包含数字?请注意,我要求用户能够使用小数位,所以'.' 应该允许角色.

c# visual-studio-2010 winforms

0
推荐指数
1
解决办法
2293
查看次数

在SQL Server 2012 Decimal列中插入double会导致不精确

在从C#到SQL服务器没有任何不精确的情况下,让程序插入实际数字会遇到很多麻烦.

例如,以下是在推送到SQL Server之前如何在C#中处理数据的代码:

DataTable dt = new DataTable();
dt.Columns.Add("Number", typeof(double));

dt.Rows.Add(6.5);
dt.Rows.Add(7);
dt.Rows.Add(8);

SqlConnection con;
string sqlCmd;
SqlCommand cmd;

using (con = new SqlConnection(Common.DBLink))
{
                con.Open();
                SqlBulkCopy bulkCopy = new SqlBulkCopy(con);
                bulkCopy.DestinationTableName = "NumberTable";
                bulkCopy.WriteToServer(dt);
                con.Close();
}
Run Code Online (Sandbox Code Playgroud)

但如果我有一个像2.85这样的数字,它会被插入为2.8499.SQL列是一种DECIMAL(10,4)数据类型.这只发生在很少的数字上.对于像12.5或20这样的值,它永远不会发生.

c# sql-server double decimal sql-server-2012

0
推荐指数
1
解决办法
1005
查看次数

检查双c#的空元素数组

我正在寻找一个代码来检查我的double数组的元素是否为空.我试着用isNaN,string.isNullOrEmpty0.0D但没有做,我仍然有这样的文字:不是一个数字.

那么,你知道C#中的任何代码能够检查double数组中的元素是否为空?

这是我的代码:

if (!Double.IsNaN(d1.getChiffreAffaireBase()[keyIndex1]))
{
    textBox43.Text = calcMargeCa(d1.getChiffreAffaireBase()[keyIndex1], d1.getChiffreAffairePlus()[keyIndex1]).ToString("0.00");
    textBox44.Text = calcMargeCa(d1.getChiffreAffaireBase()[keyIndex1+1], d1.getChiffreAffairePlus()[keyIndex1+1]).ToString("0.00");
}
else
{
    label13.Hide();
    textBox43.Hide();
    textBox44.Hide();
}
Run Code Online (Sandbox Code Playgroud)

c# arrays double element

-1
推荐指数
1
解决办法
1047
查看次数