第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

實(shí)施數(shù)千(1k = 1000,1kk = 1000000)解釋器

實(shí)施數(shù)千(1k = 1000,1kk = 1000000)解釋器

PHP
素胚勾勒不出你 2023-03-26 16:01:21
問題我正在嘗試創(chuàng)建一個(gè)將數(shù)字作為輸入的工具,例如 - 1kk,并用k乘以 1000 替換每個(gè)數(shù)字,即在這里我們得到1000000。處理整數(shù)時(shí)沒有問題,但我正在努力實(shí)現(xiàn)將數(shù)字替換為浮點(diǎn)數(shù)的算法,例如12.345kkwith 12345000??赡艿慕鉀Q方案k好的,我可以用乘以 1000 的方法替換每個(gè)表達(dá)式,然后eval是整個(gè)表達(dá)式:$inp= "12.345kk";$number = preg_replace('/[kt]/','*1000',$inp);eval("\$result = {$number};");echo($result); // 12345000但這真的很危險(xiǎn),因?yàn)樵摴ぞ咝枰脩糨斎耄⑶矣脩艨梢跃帉懰麄兿胍娜魏蝺?nèi)容。你能為這個(gè)問題提供一個(gè)安全的解決方案嗎?這是一個(gè) PHP 問題,但我想解決方案在其他語言中應(yīng)該或多或少相似,算法本身應(yīng)該不是很困難。
查看完整描述

3 回答

?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以使用preg_match將輸入拆分為數(shù)字和乘數(shù),并將數(shù)字乘以1000乘數(shù)字符串的長度:

$inp= "12.345kk";

$number = 0;

if (preg_match('/^([\d.]+)([kt]+)/', $inp, $matches)) {

? ? $number = $matches[1];

? ? $multipliers = $matches[2];

? ? $number *= 1000 ** strlen($multipliers);

}

echo $number;

輸出:


12345000


查看完整回答
反對(duì) 回復(fù) 2023-03-26
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果您確定數(shù)字的格式,您可以計(jì)算k字符串中的字符數(shù),然后將其轉(zhuǎn)換為數(shù)字并乘以適當(dāng)?shù)膬纭?/p>


$inp= "12.345kk";


$count = substr_count($inp,'k');


$number = (double)$inp*1000**$count;


print($number);


查看完整回答
反對(duì) 回復(fù) 2023-03-26
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

您的擔(dān)心是有道理的,eval()除非您絕對(duì)必須這樣做,否則您永遠(yuǎn)不應(yīng)該通過 運(yùn)行用戶輸入。你不必在這里這樣做。讓我向您展示一種可能的解決方案。

您可以通過將輸入轉(zhuǎn)換為 來float獲取輸入的數(shù)字部分。k您可以使用獲取字符數(shù)substr_count()。然后,您可以使用ks 的數(shù)量作為該數(shù)字的指數(shù)1000并將其與輸入數(shù)字相乘來計(jì)算結(jié)果數(shù)字:

$inp = "12.345kk";


$number = (float) $inp;? ? ? ? ? ? ? ? ? ? ? ? // 12.345

$factor = pow(1000, substr_count($inp, 'k'));? // 1000^2


$result = $number * $factor;? ? ? ? ? ? ? ? ? ?// 12345000

請(qǐng)注意,您也可以使用**運(yùn)算符而不是pow.?但是,我認(rèn)為pow不熟悉 PHP 的程序員很容易理解它,因此更可取。



查看完整回答
反對(duì) 回復(fù) 2023-03-26
  • 3 回答
  • 0 關(guān)注
  • 180 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)