小编Sta*_*nov的帖子

将字符串转换为double,小数点分隔符后为2位数

一切都从这些简单的代码行开始:

string s = "16.9";
double d = Convert.ToDouble(s);
d*=100;
Run Code Online (Sandbox Code Playgroud)

结果应该是1690.0,但事实并非如此.d等于1689.9999999999998.我想要做的就是将一个double加倍到小数位分隔符后的2位数值.这是我的功能.

private double RoundFloat(double Value)
{
    float sign = (Value < 0) ? -0.01f : 0.01f;

    if (Math.Abs(Value) < 0.00001) Value = 0;

    string SVal = Value.ToString();
    string DecimalSeparator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
    int i = SVal.IndexOf(DecimalSeparator);
    if (i > 0)
    {
        int SRnd;
        try
        {
            // ????? ??????? ????? ???? ?????????? ??????????
            SRnd = Convert.ToInt32(SVal.Substring(i + 3, 1));
        }
        catch
        {
            SRnd = 0;
        }

        if (SVal.Length > i + 3) …
Run Code Online (Sandbox Code Playgroud)

.net c# double compact-framework type-conversion

5
推荐指数
1
解决办法
2万
查看次数

如何在javascript中通过引用传递变量?从ActiveX函数读取数据,该函数返回多个值

我有一个要在浏览器(javascript)中使用的ActiveX对象。
我要调用一个函数。其原型是:

function TOPOSFiscalPrinter.DirectIO(Command: Integer; var pData: Integer;
  var pString: WideString): Integer;
Run Code Online (Sandbox Code Playgroud)

因此,该函数返回三个值:结果代码,pData和pString;
在javascript中,该函数不会更新变量pData和pString;

function test()
{
  var d=1, s="DIRECIO:";
  var code = opos.DirectIO(1024, d, s);

  alert(d); alert(s);
}
Run Code Online (Sandbox Code Playgroud)

变量d和s不更新。它们必须是d = 0和s =“ ED123456”;
如何从在JavaScript中返回多个值的函数中读取数据?

编辑
显然,Javascript总是按值传递参数,而不是按引用传递参数。
我可以做些什么来通过Java引用引用传递值,或者我将不得不更改设计以仅依赖于按值传递的参数和返回值。

javascript activex

5
推荐指数
1
解决办法
1万
查看次数