小编bar*_*nos的帖子

将".00"添加到Java中的整数BigDecimal

给定一个整数BigDecimal(即没有小数点),我该如何添加.00它?

我有的是:

BigDecimal Add2Zeros(BigDecimal num)
{
    return num.divide(BigDecimal.ONE,2,RoundingMode.HALF_UP);
}
Run Code Online (Sandbox Code Playgroud)

但它似乎有点笨拙.是否有更好/更简单/更清洁的方法呢?

顺便说一句,除了toString()结果之外,它不应该对论证产生任何影响.

java bigdecimal

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

Variadic函数在Win32中有效,但在Win64中无效

我已经使用了以下功能很长一段时间了:

void AddRow(int iNumOfColumns,...)
{
    int* pValuePerColumn = (int*)&iNumOfColumns+1;

    for (int i=0; i<iNumOfColumns; i++)
    {
        // Do something with pValuePerColumn[i]
    }
}
Run Code Online (Sandbox Code Playgroud)

现在事实证明它在Win64上为我们的一个客户崩溃了.

我手头没有64位平台,但我假设原因是:

调用该函数时,参数将作为64位值推入堆栈.

在这个假设下,我认为,更换int*size_t*应解决的问题.


我的问题是:

  • 我的分析是否正确?
  • 我的解决方案是否正确
  • 是否有更"常规"的解决方法?

c 64-bit variadic-functions

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

为什么在仅更改符号名称后会获得不同的"类"文件?

当我在相应的"java"文件中仅更改符号名称(类,接口,函数或变量)时,为什么Java字节码解释器会更改"类"文件?

我在源代码控制(GIT)下维护这两种类型,并且我一直看到"改变文件数量的两倍",即使是上面提到的外观变化.

顺便说一下,问题在于源代码控制问题,而是仅仅是因为我将这些文件保存在GIT上的原因是为了能够"清理"(删除所有未版本控制的文件),然后运行该程序.命令行而不重新编译它.

如果你有任何想法如何实现这个功能(没有构建运行),否则我会很高兴听到它...

谢谢

java version-control bytecode

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

Python - 函数 lstrip 的极其奇怪的行为

我遇到了内置函数的非常奇怪的行为lstrip

我将用几个例子来解释:

print 'BT_NAME_PREFIX=MUV'.lstrip('BT_NAME_PREFIX=') # UV
print 'BT_NAME_PREFIX=NUV'.lstrip('BT_NAME_PREFIX=') # UV
print 'BT_NAME_PREFIX=PUV'.lstrip('BT_NAME_PREFIX=') # UV
print 'BT_NAME_PREFIX=SUV'.lstrip('BT_NAME_PREFIX=') # SUV
print 'BT_NAME_PREFIX=mUV'.lstrip('BT_NAME_PREFIX=') # mUV
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该函数有时会修剪一个额外的字符。

我尝试对问题进行建模,并注意到如果我执行以下操作,问题仍然存在:

  • 变成BT_NAME_PREFIXBT_NAME_PREFIY
  • 变成BT_NAME_PREFIXBT_NAME_PREFIZ
  • 变成BT_NAME_PREFIXBT_NAME_PREF

进一步的尝试让它变得更加奇怪

print 'BT_NAME=MUV'.lstrip('BT_NAME=') # UV
print 'BT_NAME=NUV'.lstrip('BT_NAME=') # UV
print 'BT_NAME=PUV'.lstrip('BT_NAME=') # PUV - different than before!!!
print 'BT_NAME=SUV'.lstrip('BT_NAME=') # SUV
print 'BT_NAME=mUV'.lstrip('BT_NAME=') # mUV
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这里到底发生了什么吗?

我知道我也可能只使用数组切片,但我仍然想了解这一点。

谢谢

python

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

用于处理编译错误的C/C++预处理程序指令

标题可能有点令人困惑,所以我会试着解释一下.

是否有一个预处理器指令,我可以用一段代码封装,如果这段代码包含编译错误,那么应该编译其他一些代码?

这是一个说明我的动机的例子:

#compile_if_ok
    int a = 5;
    a += 6;
    int b = 7;
    b += 8;
#else
    int a = 5;
    int b = 7;
    a += 6;
    b += 8;
#endif
Run Code Online (Sandbox Code Playgroud)

以上示例不是我正在处理的问题,因此请不要提出具体的解决方案.

更新:

感谢那里的所有负面评论.

这是确切的问题,也许有一点负面方法的人会得到答案:

我试图在编译时决定某个变量a是数组还是指针.

我想我可以使用这样一个事实:与指针不同,数组没有L值.

因此,实质上,以下代码会产生数组的编译错误,但不会产生指针:

int a[10];
a = (int*)5;
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式"利用"这个编译错误,以确定这a是一个数组而不是一个指针,而不停止编译过程

谢谢

c c++ preprocessor-directive

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

memcmp 只适用于字符串吗?

如果我发送memcmp两个指向整数的指针,那么它似乎将整数解释为字符。

例如:

int a = 5;
int b = 256;
int res = memcmp(&a,&b,sizeof(int));
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,它返回 1。

我想更好地理解这个函数,我想知道我是否使用了错误的函数,或者是否有一个类似的函数来比较内存块的保存int值。

c memcmp

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

类型为"number"的<input>标记的值的类型是什么?

假设我有一个type属性设置为"number"的输入标记:

<input type="number" id="num-of-units"></input>
Run Code Online (Sandbox Code Playgroud)

我想获取当前数值并将其与其他一些数值进行比较:

if (document.getElementById("num-of-units").value > 0) ...
Run Code Online (Sandbox Code Playgroud)

我可以安全地假设'value'是数字类型而不是字符串类型,还是我必须转换它?

PS:我意识到我可以在Firefox或其他东西上测试它,但我想确定标准说的是什么.

谢谢

html javascript

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