weixin_41244451 2024-07-12 15:34 采纳率: 93.9%
浏览 0
已结题

加减法的可以正常存储并传到结果页面去,但是乘除法的传到结果页上去以后,number1只显示了个位数,十位上的数没有显示

function generateQuestion(numbers) {
    let result = 0;
    const operators = ['+', '-'];
    let question = '';
    let lastOperator = '+'; // 初始操作符为加号
    let lastNumber = null; // 初始化上一个数字为null
    let buttonsDisabled = true; // 按钮初始状态为不可点击
    if(type<1000)//加减法
    {
         for (let i = 0; i < 2; i++) 
         {
              let number, operator;
              let validNumber = false;
              let result_onesDigit=onesDigit(result);
              let result_tensDigit = tensDigit(result);
              let result_hundredDigit = hundredDigit(result);
 
             // 循环直到找到一个合适的数字
             do {
                    if(type==1)//1-4直加直减
                    {
                        number = Math.floor(Math.random() * 4) + 1; // 1-4的随机数
                        operator = operators[Math.floor(Math.random() * 2)];
                        // 检查当前操作符和数字是否会导致结果超出范围
                        if (operator === '+') {
                            validNumber = result + number <= 4;
                        }
                        else
                        {
                            validNumber = result - number >= 0;
                        }
                    }
               } while (!validNumber);
 
               lastOperator = operator; // 更新上一个操作符
               lastNumber = number; // 更新上一个数字
               setTimeout(() => 
              {
                    displayQuestion(number,'','');
              }, (i + 1) * shijian*1000);
 
              result += operator === '+' ? number : -number;
              question += (i > 0 ? ' ' : '') + operator + number;
          }
    }
    else//乘除法
    {
         let number1, operator, number2;
         let validNumber = false;
         if(type==1000)//2的乘法
         {
              number1 = Math.floor(Math.random() * 90) + 10; // 两位数
              number2 = 2;
              operator = '*';
              result = number1 * number2;
         }
         lastOperator = operator; // 更新上一个操作符
         question = `${number1} ${operator} ${number2}`; // 同时显示操作符和数字
         setTimeout(() => {
               document.getElementById('question').textContent = number1+'×'+number2;
         }, shijian*1000);
    }
    // 用于存储问题
    questions.push({ question: question, answer: result });
}

questions.push({ question: question, answer: result })加减法的可以正常存储并传到结果页面去,但是乘除法的传到结果页上去以后,number1只显示了个位数,十位上的数没有显示

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-12 15:34
    关注

    引自免费微信小程序:皆我百晓生

    从你的描述和代码中,我理解你在处理乘除法时遇到了一个问题,即在将结果展示到页面上时,如果number1是一个两位数,那么只显示了个位数,十位上的数字没有显示。这个问题可能是由于你在生成HTML内容时没有正确处理数字的格式化。在生成显示字符串时,你需要确保完整地包含数字的每一位。

    在乘除法的部分,你的代码里有这样的行:

    document.getElementById('question').textContent = number1+'×'+number2;
    

    这行代码只是简单地将number1number2以及操作符拼接成一个字符串。如果number1是一个两位数,它会被自动转换为数字对应的字符串形式,但不会包含任何格式化来显示十位和个位。

    为了解决这个问题,你可以使用JavaScript中的toString()方法来格式化数字,确保数字的每一位都被正确显示。例如,你可以这样做:

    document.getElementById('question').textContent = number1.toString() + '×' + number2.toString();
    

    这样,无论number1number2是多大,它们都会被转换为字符串并正确显示在页面上。如果你的数字是两位数或多位数,它们都会完整地显示,包括十位和个位。这样应该可以解决你的问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月12日
  • 创建了问题 7月12日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗