最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)在線進(jìn)制轉(zhuǎn)換功能

 更新時(shí)間:2025年04月15日 11:17:00   作者:勘察加熊人  
這篇文章主要介紹了vue實(shí)現(xiàn)在線進(jìn)制轉(zhuǎn)換功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

vue實(shí)現(xiàn)在線進(jìn)制轉(zhuǎn)換

主要功能包括:

1.支持2-36進(jìn)制之間的轉(zhuǎn)換。
2.支持整數(shù)和浮點(diǎn)數(shù)的轉(zhuǎn)換。
3.輸入驗(yàn)證(雖然可能存在不嚴(yán)格的情況)。
4.錯(cuò)誤提示。
5.結(jié)果展示,包括大寫(xiě)字母。
6.用戶友好的界面,包括下拉菜單、輸入框、按鈕和結(jié)果區(qū)域。
7.小數(shù)部分處理,限制精度為10位。
8.即時(shí)轉(zhuǎn)換(通過(guò)按鈕觸發(fā),而非實(shí)時(shí)響應(yīng))。

效果圖:

step1:C:\Users\wangrusheng\PycharmProjects\untitled18\src\views\Home.vue

<template>
  <div class="converter-container">
    <h1>在線進(jìn)制轉(zhuǎn)換</h1>
    <p class="description">支持在2~36進(jìn)制之間進(jìn)行任意轉(zhuǎn)換,支持浮點(diǎn)型</p>
    <div class="converter-wrapper">
      <div class="converter-row">
        <div class="select-group">
          <select v-model="fromBase" class="base-select">
            <option v-for="n in bases" :value="n">{{ n }}進(jìn)制</option>
          </select>
        </div>
        <div class="input-group">
          <input
            type="text"
            v-model="inputNumber"
            placeholder="轉(zhuǎn)換數(shù)字"
            class="number-input"
          >
        </div>
      </div>
      <div class="converter-row">
        <div class="select-group">
          <select v-model="toBase" class="base-select">
            <option v-for="n in bases" :value="n">{{ n }}進(jìn)制</option>
          </select>
        </div>
        <div class="result-group">
          <div class="result-display">{{ result }}</div>
        </div>
      </div>
    </div>
    <button @click="convert" class="convert-btn">立即轉(zhuǎn)換</button>
  </div>
</template>
<script setup>
import { ref, computed } from 'vue'
const fromBase = ref(16)
const toBase = ref(10)
const inputNumber = ref('3c')
const result = ref('')
const bases = Array.from({ length: 35 }, (_, i) => i + 2); // 生成 2 到 36 的進(jìn)制數(shù)組
const convert = () => {
  try {
    // Handle empty input
    if (!inputNumber.value) {
      result.value = '';
      return;
    }
    // Check if the input number is valid for the selected base
    const isValid = /^[0-9a-z.]+$/i.test(inputNumber.value);
    if (!isValid) {
      result.value = '輸入包含無(wú)效字符';
      return;
    }
    // Separate integer and fractional parts
    const [integerPartStr, fractionalPartStr = ''] = inputNumber.value.split('.');
    // Convert integer part
    const integerPartDecimal = parseInt(integerPartStr, fromBase.value);
    if (isNaN(integerPartDecimal)) {
      result.value = '無(wú)效的輸入數(shù)字';
      return;
    }
    const integerPartResult = integerPartDecimal.toString(toBase.value).toUpperCase();
    // Convert fractional part if it exists
    let fractionalPartResult = '';
    if (fractionalPartStr) {
      let decimalFraction = 0;
      for (let i = 0; i < fractionalPartStr.length; i++) {
        const digit = parseInt(fractionalPartStr[i], fromBase.value);
        if (isNaN(digit) || digit >= fromBase.value) {
          result.value = '無(wú)效的小數(shù)部分';
          return;
        }
        decimalFraction += digit * Math.pow(fromBase.value, -(i + 1));
      }
      let tempFractionalResult = '';
      let tempDecimal = decimalFraction;
      for (let i = 0; i < 10; i++) { // Limit precision to 10 digits
        tempDecimal *= toBase.value;
        const integerPart = Math.floor(tempDecimal);
        tempFractionalResult += integerPart.toString(toBase.value).toUpperCase();
        tempDecimal -= integerPart;
        if (tempDecimal === 0) {
          break;
        }
      }
      fractionalPartResult = '.' + tempFractionalResult;
    }
    result.value = integerPartResult + fractionalPartResult;
  } catch (error) {
    result.value = '轉(zhuǎn)換出錯(cuò)';
    console.error("Conversion error:", error);
  }
}
</script>
<style scoped>
.converter-container {
  max-width: 600px;
  margin: 20px auto;
  padding: 20px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
h1 {
  text-align: center;
  color: #333;
  margin-bottom: 10px;
}
.description {
  text-align: center;
  color: #666;
  margin-bottom: 30px;
}
.converter-wrapper {
  margin: 20px 0;
}
.converter-row {
  display: flex;
  gap: 10px;
  margin-bottom: 15px;
}
.select-group, .input-group, .result-group {
  flex: 1;
}
.base-select, .number-input {
  width: 100%;
  padding: 12px;
  border: 1px solid #fff;
  border-radius: 4px;
  font-size: 16px;
}
.result-display {
  padding: 12px;
  background: #f8f9fa;
  border: 1px solid #eee;
  border-radius: 4px;
  min-height: 46px;
}
.convert-btn {
  width: 100%;
  padding: 12px;
  background: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  transition: background 0.3s;
}
.convert-btn:hover {
  background: #0056b3;
}
</style>

到此這篇關(guān)于vue實(shí)現(xiàn)在線進(jìn)制轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)vue在線進(jìn)制轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VUE項(xiàng)目去除input 框值所有空格的操作方法

    VUE項(xiàng)目去除input 框值所有空格的操作方法

    這篇文章主要介紹了VUE項(xiàng)目去除input 框值所有空格的操作方法,主要包括去除空格的方法、正則和element ui寫(xiě)法,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • 解決VUEX兼容IE上的報(bào)錯(cuò)問(wèn)題

    解決VUEX兼容IE上的報(bào)錯(cuò)問(wèn)題

    下面小編就為大家分享一篇解決VUEX兼容IE上的報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • vue+elementUI用戶修改密碼的前端驗(yàn)證規(guī)則

    vue+elementUI用戶修改密碼的前端驗(yàn)證規(guī)則

    用戶登錄后修改密碼,密碼需要一定的驗(yàn)證規(guī)則,這篇文章主要介紹了vue+elementUI用戶修改密碼的前端驗(yàn)證,需要的朋友可以參考下
    2024-03-03
  • Vue 2閱讀理解之initRender與callHook組件詳解

    Vue 2閱讀理解之initRender與callHook組件詳解

    這篇文章主要為大家介紹了Vue 2閱讀理解之initRender與callHook組件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Vue指令之v-for的使用說(shuō)明

    Vue指令之v-for的使用說(shuō)明

    這篇文章主要介紹了Vue指令之v-for的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue 使用高德地圖vue-amap組件過(guò)程解析

    vue 使用高德地圖vue-amap組件過(guò)程解析

    這篇文章主要介紹了vue 使用高德地圖vue-amap組件過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • vue3?el-table結(jié)合seamless-scroll實(shí)現(xiàn)表格數(shù)據(jù)滾動(dòng)的思路詳解

    vue3?el-table結(jié)合seamless-scroll實(shí)現(xiàn)表格數(shù)據(jù)滾動(dòng)的思路詳解

    這篇文章主要介紹了vue3?el-table結(jié)合seamless-scroll實(shí)現(xiàn)表格數(shù)據(jù)滾動(dòng),創(chuàng)建兩個(gè)table,隱藏第一個(gè)table的body部分,這樣就能得到一個(gè)固定的head,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • vue通過(guò)krpano.js實(shí)現(xiàn)360全景圖的實(shí)例代碼

    vue通過(guò)krpano.js實(shí)現(xiàn)360全景圖的實(shí)例代碼

    這篇文章主要介紹了vue上通過(guò)krpano.js實(shí)現(xiàn)360全景圖,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • vue遍歷中存在el-form之踩坑記錄

    vue遍歷中存在el-form之踩坑記錄

    這篇文章主要介紹了vue遍歷中存在el-form之踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue3?實(shí)現(xiàn)關(guān)于?el-table?表格組件的封裝及調(diào)用方法

    vue3?實(shí)現(xiàn)關(guān)于?el-table?表格組件的封裝及調(diào)用方法

    這篇文章主要介紹了vue3?實(shí)現(xiàn)關(guān)于?el-table?表格組件的封裝及調(diào)用方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評(píng)論

明星| 贡嘎县| 自贡市| 娄烦县| 宁蒗| 会理县| 新野县| 玉门市| 阿荣旗| 昌吉市| 泌阳县| 招远市| 武鸣县| 河池市| 阳城县| 镶黄旗| 乳源| 兰坪| 抚宁县| 彭阳县| 伊吾县| 措美县| 厦门市| 乌苏市| 公安县| 利川市| 平谷区| 玉林市| 平陆县| 阿克苏市| 成安县| 通许县| 河北省| 丰原市| 资中县| 柳河县| 奎屯市| 临沂市| 县级市| 通城县| 监利县|