2 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
當(dāng)您需要向下除法(也稱(chēng)為整數(shù)除法)時(shí),您正在使用浮點(diǎn)除法,因?yàn)?JS 數(shù)字始終是浮點(diǎn)數(shù)。要修復(fù)此問(wèn)題,請(qǐng)?jiān)诔ㄖ笫褂?Math.floor:
var n = 121;
var sum = 0
var r;
var temp = n;
while(n > 0){
r = n % 10;
sum = (sum * 10) + r;
n = Math.floor(n / 10);
}
if(temp == sum){
console.log("It is a palindrome number.");
}else{
console.log("Not a palindrome");
}

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
該代碼在 java 和 javascript 中的結(jié)果不完全相同的原因是數(shù)據(jù)類(lèi)型的差異。
您(很可能)在 java 中聲明變量,如下所示:
int?n?=?121;????//?this?is?strictly?an?integer
而當(dāng)你在 javascript 中聲明時(shí):
var?n?=?121;????//?this?is?interpreted?according?to?the?calculation?where?used
所以在java中,n/10會(huì)給你一個(gè)整數(shù),一個(gè)四舍五入的整數(shù)答案。
但在 javascript 中,n/10 可能會(huì)給你一個(gè)十進(jìn)制值。這就是你的程序失敗的地方。
解決方案:在 javascript 中?使用適當(dāng)?shù)?code>Math.ceil()或floor()
函數(shù),使其四舍五入到最接近的整數(shù)值。我會(huì)讓您弄清楚在這種情況下您需要哪一個(gè)。
添加回答
舉報(bào)