Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 91一区二区午夜免费福利网站,狠狠色噜狠狠狠狠,日韩欧美中文

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          html文件刪除如何恢復(fù)?恢復(fù)誤刪html文件教程

          tml文件即超文本標(biāo)記語言文件文檔,是擴(kuò)展名、后綴名為html的文件。超文本標(biāo)記語言的結(jié)構(gòu)包括頭部分(Head)、和主體部分(Body),其中頭部(head)提供關(guān)于網(wǎng)頁的信息,主體(body)部分提供網(wǎng)頁的具體內(nèi)容。html文件能夠被多種網(wǎng)頁瀏覽器讀取,傳遞。我們可以使用電腦上自帶的記事本進(jìn)行編輯htm文件。那么html文件刪除如何恢復(fù)?

          通常情況下當(dāng)您從電腦存儲設(shè)備中刪除html文件時,該html文件會保存在回收站中。 可以根據(jù)需要通過單擊還原選項將其還原。 但是不好運(yùn)的情況下,如果您清空回收站或文件未經(jīng)過回收站、或使用永久刪除鍵Shift + Delete將文件刪除怎么恢復(fù)呢?我們可以通過使用數(shù)據(jù)恢復(fù)軟件來恢復(fù)。

          html文件刪除恢復(fù)步驟如下:

          1、首先到官網(wǎng)下載并安裝好云騎士數(shù)據(jù)恢復(fù)軟件(注意:軟件不能安裝在丟失盤中),打開云騎士數(shù)據(jù)恢復(fù)軟件,根據(jù)需要選擇恢復(fù)功能,這里選擇場景模式下的誤刪除文件。

          2、選擇好以后選擇需要恢復(fù)數(shù)據(jù)的分區(qū),如果是外接設(shè)備則可以將它插入電腦中,或者通過讀卡器插入電腦,點擊開始掃描。

          3、掃描結(jié)束以后,你會發(fā)現(xiàn)有很多數(shù)據(jù),這時我們可以通過文件類型進(jìn)行查找,這里勾選其他文件類型,然后找到了需要的html格式文件。

          因為文件丟失后有可能會因各種原因受損,所以遵循先預(yù)覽再恢復(fù)原則,通過預(yù)覽模式判斷文件是否正常再進(jìn)行恢復(fù)。對于無法預(yù)覽或者不支持預(yù)覽的是無法判斷數(shù)據(jù)是好的還是壞的,只能恢復(fù)出來才能進(jìn)行查看的。

          4、接著在需要恢復(fù)的html文件前面進(jìn)行勾選,選擇好以后點擊立即恢復(fù)按鈕。

          5、彈出設(shè)置文件路徑窗口,將文件存儲在安全區(qū)域中(如果存儲盤不夠內(nèi)存,可以外接其他設(shè)備進(jìn)行存儲),點擊確定按鈕。

          6、耐心等待文件導(dǎo)出完成,點擊查看即可查看恢復(fù)出來的html文件了。

          知識普及:

          導(dǎo)致html文件丟失常見幾種原因:

          采用來源于Internet的各種各樣沒經(jīng)驗證的第三方應(yīng)用程序也許會使您的html文件遭遇風(fēng)險。

          偶爾在下載那些應(yīng)用程序時,某些惡意病毒也許會進(jìn)入系統(tǒng)并破壞html文件結(jié)構(gòu),亦或它們也許會刪除桌面上的所有html文件,因此致使大量數(shù)據(jù)丟失。

          在重新分區(qū)或調(diào)整硬盤大小時,那些html文件也許會遺失。在重新分區(qū)時,一個重大的錯誤也會刪除存儲了所必需文件的分區(qū),例如DOC、PPT、XLSX和HTML。

          總結(jié):以上就是html文件刪除恢復(fù)教程了,如果在軟件使用過程中有不懂的問題,可以咨詢專業(yè)的在線客服人員為您解答~

          本文來自 yqssjhf.com>> 創(chuàng)作不易,轉(zhuǎn)載請注明出處。

          天財務(wù)一同事打開excel文件后發(fā)現(xiàn)用了好幾個月的某個表格打開后出錯了,里面的內(nèi)容丟失了一部分,就是關(guān)鍵性的列內(nèi)容不顯示了,如下圖

          部分單元格內(nèi)容丟失

          那么遇到這種情況這個表格還有救嗎?這得看是哪種錯誤導(dǎo)致的,我們把表格復(fù)制到本地,然后打開。

          會出現(xiàn)一個錯誤提示,主要是說有 XML 錯誤的 /xl/sharedStrings.xml,也就是sharedStrings.xml文件出錯了,它是一個共享的單元格內(nèi)容文件。

          我們先把excel文件復(fù)制一份,然后把xlsx后綴更改為.rar,并進(jìn)行解壓縮,所有的xlsx文件都是由一堆文件組成的,可以解壓為原始的xml文件,如下圖。

          xml文件語法非常嚴(yán)格,把sharedStrings.xml文件用瀏覽器打開看看會出現(xiàn)什么樣的錯語提示,然后再根據(jù)提示進(jìn)行處理,其實在打開Excel文件的時候就提醒我們了,主要是開始標(biāo)記與結(jié)束標(biāo)記不匹配導(dǎo)致的,開始與結(jié)束標(biāo)記為<si> </si>,只要會點html的話就很容易理解了。

          好了,對于這個文件有兩種修復(fù)方法

          第三方軟件修復(fù)

          可以使用第三方的軟件進(jìn)行修復(fù)此問題,但是試了好多個修復(fù)工具后發(fā)現(xiàn)只有XLSX Open File Tool才能準(zhǔn)確的修復(fù),但是它是收費(fèi)的,不付費(fèi)只能看不能保存,最便宜價格199元,如果你的文件比較小,丟的內(nèi)容也不多,對比著修復(fù)的內(nèi)容自己填進(jìn)去就行了,如果文件大那就購買軟件修復(fù)吧,留著以后還能用。

          手工修復(fù)

          如果不想花錢還想要修復(fù)文件,那么可以手工進(jìn)行修復(fù),就是把sharedStrings.xml文件中的開始和結(jié)束標(biāo)記補(bǔ)全就可以了,聽起來很復(fù)雜,其實很簡單,<si>和</si>是一一對應(yīng)的,兩者的數(shù)量一樣多才對。

          第一步:可以使用記事本或vs code編輯器來打開sharedStrings.xml文件,然后進(jìn)行查找和替換,把所有的</r><si>替換成</r></si><si>,然后保存。

          第二步:把修改好的sharedStrings.xml文件替換掉壓縮包中的此文件。

          第三步:把rar的后綴名再改回xlsx。

          雙擊打開試試,大多數(shù)情況下就能正常打開你的Excel文件了。

          怎么避免Excel文件中開始與結(jié)束標(biāo)記不匹配的問題了

          通過在網(wǎng)上查找資料發(fā)現(xiàn)導(dǎo)致這種原因的問題有很多,大致如下

          1、表格中不要使用大量的外部鏈接

          2、不要使用復(fù)雜的引用,能不引用就盡量別引用

          3、不要從網(wǎng)頁或軟件導(dǎo)出的表格中直接復(fù)制粘貼,一些樣式會導(dǎo)致此問題

          4、不要設(shè)置復(fù)雜的格式,用多大的地方就設(shè)置多少的格式,不要設(shè)置格式時選擇全表范圍

          5、有網(wǎng)友說搜狗拼音會導(dǎo)致此問題,盡量注意吧。

          最重要的是數(shù)據(jù)和文件要養(yǎng)成經(jīng)常備份的好習(xí)慣

          項目開發(fā)中,你一定遇到過精度丟失的問題!比如某個無良的后端返回了一個超16位的數(shù)字訂單號,比如0.1+0.2 != 0.3等等:

          let a = 0.1235678912345623456
          console.log(a)
          let b = 256.1235678912345623456
          console.log(b)
          let c = 0.1
          let d = 0.2
          console.log(c + d)
          let e = 2.55
          let f = 1.55
          console.log(e.toFixed(1))
          console.log(f.toFixed(1))



          01

          精度丟失的原因

          是什么原因造成的捏?

          嗯?

          大道理咱也不會說,問就是一句話回復(fù):

          在十進(jìn)制轉(zhuǎn)二進(jìn)制的過程中,因js存儲位數(shù)有限制,末位就會0舍1入取近似值,從而導(dǎo)致再轉(zhuǎn)回十進(jìn)制時產(chǎn)生誤差。



          02

          如何解決


          • 使用toPrecision;
          • 乘以10的N次冪轉(zhuǎn)換成整數(shù),再除以N次冪轉(zhuǎn)回小數(shù);
          • 先加上1e-14或Number.EPSILON再取值;
          • 使用第三方庫,處理大數(shù)的 bignumber.js,處理小數(shù)的number-precision 和 decimal.js,處理JSON序列化json-bigint。

          使用toPrecision


          這個方法主要用于純展示。先用toPrecision保留一定位數(shù)的經(jīng)度,再通過parseFloat展示。

          例如:

          console.log(parseFloat(0.30000000000000004.toPrecision(12)))

          這個12是精度默認(rèn)值或者說是一個經(jīng)驗值,12位一般都能解決0000...1和0000...9的問題。一般不適合浮點數(shù)的運(yùn)算。


          先轉(zhuǎn)整數(shù)進(jìn)行運(yùn)算,再轉(zhuǎn)成小數(shù)


          這種方式是我之前浮點運(yùn)算時經(jīng)常用到的方法。我們拿0.1+0.2的運(yùn)算來舉例:

          let a = (0.1*10 + 0.2*10) / 10
          console.log(a) //0.3

          但這種方法也不是萬能的,有時候也會失精:

          console.log(33.41*100) //3340.9999999999995
          console.log(2.55*100)  //254.99999999999997

          真是防不勝防啊!這時候我們也可以使用Math.round()方法來達(dá)到我們的目的,如下:

          console.log(Math.round(33.41*100))  //3341
          console.log(Math.round(2.55*100))  //255
          console.log((Math.round(0.1*10) + Math.round(0.2*10)) / 10)  //0.3

          先加上1e-14或Number.EPSILON再取值


          給浮點數(shù)加上一個極小的數(shù)就可以達(dá)到目的。獲取極小的數(shù)有兩種方式:

          • 1e-14(10的-14次方)
          • ES6的極小的常量Number.EPSILON


          先來看看Number.EPSILON是什么?

          console.log(Number.EPSILON)  //2.220446049250313e-16
          console.log(Number.EPSILON.toFixed(20))  //0.00000000000000022204

          這兩種方式都可以,看自己的喜好啦!

          let a = 0.1235678912345623456
          console.log((a+1e-14).toFixed(1)) //0.1
          console.log((0.1 + Number.EPSILON + 0.2 + Number.EPSILON).toFixed(1))
          //0.3

          第三方庫

          第三方庫主要介紹以下四種:

          • bignumber.js的使用-處理大數(shù)

          安裝:

          npm install --save bignumber.js

          引入:

          import BigNumber from 'bignumber.js';

          使用:

          const a = new BigNumber(0.2);
          const b = new BigNumber(0.1)
          let c = a.plus(b)
          console.log(c) //BigNumber {s: 1, e: -1, c: Array(1)}
          console.log(c.toString())  //0.3
          console.log(c.toNumber())  //0.3

          官網(wǎng):https://mikemcl.github.io/bignumber.js/


          • number-precision的使用-處理小數(shù)

          安裝:

          npm install number-precision --save

          引入:

          import NP from 'number-precision';

          使用:

          console.log(NP.strip(0.09999999999999998)); // 四舍五入:=0.1
          console.log(NP.round(0.105, 2)) //取2位小數(shù),四舍五入:=0.11
          console.log(NP.plus(2.3, 2.6)); // 加:=4.9
          console.log(NP.minus(1.0, 0.9)); // 減:=0.1
          console.log(NP.times(3, 0.3)); // 乘:=0.9
          console.log(NP.divide(0.9, 0.3)); // 除:=3
          console.log(NP.plus(0.1, 0.2))


          • number-precision的使用-處理小數(shù)

          安裝:

          npm install --save decimal.js

          引入:

          import Decimal from "decimal.js"

          使用:

          console.log(Decimal(0.1).add(Decimal(0.2))); // 加: {s: 1, e: -1, d: Array(1), constructor: ?}
          console.log(Decimal(0.1).sub(Decimal(0.2))); // 減:{s: -1, e: -1, d: Array(1), constructor: ?}
          console.log(Decimal(0.1).mul(Decimal(0.2))); // 乘:{s: 1, e: -2, d: Array(1), constructor: ?}
          console.log(Decimal(0.1).div(Decimal(0.2))); // 除:{s: 1, e: -1, d: Array(1), constructor: ?}

          上面的結(jié)果是Decimal 對象,取值需要Number 或 String轉(zhuǎn)換

          官網(wǎng):http://mikemcl.github.io/decimal.js/


          • json-bigint的使用-處理后端的返回值

          安裝:

          npm install json-bigint

          引入:

          import JSONBigInt from 'json-bigint';
          const JSONBigIntNative = JSONBigInt();

          使用:

          let json = "{\"order\":258431607934229718,\"price\":1.258431607934229718,\"no\":123456}"
          const obj1 = JSON.parse(json)
          const obj2 = JSONBigIntNative.parse(json)
          console.log(obj1) //{order: 258431607934229730, price: 1.2584316079342297, no: 123456}
          console.log(obj2.order.toString())  //258431607934229718
          console.log(obj2.price.toString())  //1.258431607934229718
          console.log(obj2.order.toNumber())  //258431607934229730
          console.log(obj2.price.toNumber())  //1.2584316079342297

          主要是把大數(shù)據(jù)轉(zhuǎn)成字符串。其實關(guān)于這一點,如果后端經(jīng)驗豐富的話,自然會給前端返回字符串,也無需前端轉(zhuǎn)換。不過呢,可能前端的技能的提升也就是從無經(jīng)驗的后端開始的噢!


          主站蜘蛛池模板: 欧美日韩精品一区二区在线视频 | 久久精品无码一区二区三区免费| 久久精品国产免费一区| 99精品国产高清一区二区麻豆| 中文字幕一区二区三区视频在线 | 亚洲中文字幕丝袜制服一区| 亚洲一区二区三区写真| 日韩免费观看一区| 精品无码成人片一区二区| 午夜视频一区二区| 色欲AV蜜桃一区二区三| 呦系列视频一区二区三区| 精品动漫一区二区无遮挡| 国产精品一区二区不卡| 亚洲色精品VR一区区三区| 亚洲中文字幕在线无码一区二区| 男女久久久国产一区二区三区| 日韩免费观看一区| 91久久精品无码一区二区毛片| 奇米精品视频一区二区三区| 国产福利一区二区三区在线观看| 人妖在线精品一区二区三区| 交换国产精品视频一区| 国模大胆一区二区三区| 色婷婷亚洲一区二区三区| 视频精品一区二区三区| 一区二区三区午夜| 精品久久一区二区三区| 秋霞无码一区二区| 日本一区二区三区免费高清| 国产激情一区二区三区在线观看| 波多野结衣中文一区| 国产免费一区二区三区不卡 | 亚洲乱码国产一区三区| 国产AV午夜精品一区二区入口| 麻豆AV一区二区三区久久| 亚洲av无码一区二区三区人妖| 男人的天堂av亚洲一区2区| 精品一区二区三区影院在线午夜 | 亚洲av无码一区二区三区四区| 日韩在线视频一区二区三区|