我想减少JavaScript中的丑陋代码,特别是与构造函数有关.
我有一个矢量定义为:
function Vector2(X, Y) {
this.x = 0.0;
this.y = 0.0;
if (X)
this.y = Y;
if (Y)
this.y = Y;
}
Run Code Online (Sandbox Code Playgroud)
现在,为了将两个向量加在一起,我必须写:
var vector1 = new Vector2(1.0, 0.5);
var vector2 = new Vector2(4.5, 1.0);
vector1.x += vector2.x;
vector1.y += vector2.y;
Run Code Online (Sandbox Code Playgroud)
我想让代码更漂亮,更容易阅读,并在使用许多构造函数时制作更小的文件.我想写的是:
vector1 += vector2;
Run Code Online (Sandbox Code Playgroud)
预先感谢您的任何帮助.
要强制在base10中解释数字,可以在前缀10#之前加上数字。特别是10#08和10#09将被解释为有效的十进制数字,而不是无效的八进制数字。(我的输出为date +%S)
但是,似乎我无法在比较中使用该变量:
x=10#08
y=10#20
echo $((x+y)) // (returns 28, as expected)
while [ $x -lt $y ]
do
x=$((x++))
done
Run Code Online (Sandbox Code Playgroud)
给我错误
-bash: [: 10#08: integer expression expected
Run Code Online (Sandbox Code Playgroud)
这是bash中的错误吗?
int i = 5;
while(i>5)
printf("%d",i);
Run Code Online (Sandbox Code Playgroud)
没有打印.
int i = 5;
while ( 5<i<10 )
{
printf("%d",i);
i++;
}
Run Code Online (Sandbox Code Playgroud)
打印5
在这两种情况下都不应该是"不打印"的结果.因为5不小于5.
我相信128位数据没有任何便携式标准数据类型.因此,我的问题是如何在不使用现有标准数据类型丢失数据的情况下有效地执行64位操作.
例如:我有两个uint64_t类型变量:
uint64_t x = -1; uint64_t y = -1;
现在,如何x+y, x-y, x*y and x/y存储/检索/打印数学运算的结果?
对于上面的变量,x + y得到-1的值,实际上是带有进位1的0xFFFFFFFFFFFFFFFFULL.
void add (uint64_t a, uint64_t b, uint64_t result_high, uint64_t result_low)
{
result_low = result_high = 0;
result_low = a + b;
result_high += (result_low < a);
}
Run Code Online (Sandbox Code Playgroud)
如何执行其他操作add,从而提供适当的最终输出?
如果有人共享通用算法,我会很感激,这些算法可以处理使用这些操作可能出现的溢出/下溢等.
任何可能有帮助的标准测试算法.
当你将一个角色转换为C中的int时,到底发生了什么?由于字符是一个字节而int是四个,你怎么能得到一个字符的整数值?它是被视为数字的位模式吗?以角色'A'为例.位模式01000001(即二进制65)?
我无法在R中执行简单的矩阵算术,这令人感到困惑。这真的不可能吗?我想采用1个数据框中的值,并将其子跟踪到另一个数据框中的所有列。看起来像这样应该很容易,但是我什么也没找到,尽管有一个“心理”程序包可以作为功能,但不能给出预期的结果。似乎也没有必要。有小费吗。非常感激。
> NROW(arData1[c(gsub(" ", ".",portfolio1), "benchmark")])
[1] 51
> NCOL(arData1[c(gsub(" ", ".",portfolio1), "benchmark")])
[1] 4
> NROW(arData1[gsub(" ", ".", treasuries)])
[1] 51
> NCOL(arData1[gsub(" ", ".", treasuries)])
[1] 1
ExRet1 <- arData1[c(gsub(" ", ".",portfolio1), "benchmark")] - arData1[gsub(" ", ".", treasuries)]
Error in Ops.data.frame(arData1[c(gsub(" ", ".", portfolio1), "benchmark")], :
- only defined for equally-sized data frames
Run Code Online (Sandbox Code Playgroud) 我正在创建一个函数来在对象(student1)中添加每个数组(作业,测验,测试)的标记.当代码试图添加"Lloyd"时肯定会出现错误.我要检查的数据类型的值的"名",以进行算术运算仅当值的的关键是数量.请建议.
student1 = {
"name": "Lloyd",
"homework": [90, 97, 75, 92],
"quiz": [88, 40, 94],
"test": [75, 90]
}
def eachSubjAverage(std):
for item in std:
total = sum(std[item]) #totalling each marks
std[item].append(total)
average_no = total/(len(std[item])-1) #averaging the marks
std[item].append(average_no)
eachSubjAverage(student1)
Run Code Online (Sandbox Code Playgroud) 以下问题在C#和Javascript之间返回不同的结果:
JS结果= 0.6987590698013918
C#Result = 0.697932453616849
使用Javascript
mu =0.6962788561718957;
e1= 0.0016792203861749964;
phi1 = mu + e1 * (3 / 2 - 27 * e1 * e1 / 32) * Math.sin(2 * mu) + e1 * e1 * (21 / 16 - 55 * e1 * e1 / 32) * Math.sin(4 * mu);
Run Code Online (Sandbox Code Playgroud)
C#
double mu = 0.6962788561718957;
double e1 = 0.0016792203861749964;
double phi1 = mu + e1 * (3 / 2 - 27 * e1 * e1 / 32) * …Run Code Online (Sandbox Code Playgroud) javascript c# math arithmetic-expressions operator-precedence
这是我的完整代码,每当我运行它时,它都会打印随机的负值,不确定是否出了问题。使用Ubuntu来运行和“ gcc -Wall -Wextra test.c”
#include <stdio.h>
int main () {
unsigned int x = 10;
unsigned int y = 16;
unsigned int p = x + y;
printf("%d\n", &p);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我创建了 5 个仅包含浮点数(包含正数和负数)的数组。
以下是声明的数组:
我需要在数组上执行以下公式,但它不起作用。
还有其他方法吗?
for((i =1 ; i <(#$assets[@]}; i++));do
echo ${assets[i]} - ( ${reported[i]} + ( ${affiliate[i]} * -1 ) + ${loans[i]} + (${credit[i]} - ${debit[i]})) | bc >> test.log
Run Code Online (Sandbox Code Playgroud)